sparksql: how to specify custom routing when writting to es
hello,

this code is working fine for me

es : 5.2

spark: 1.6

es-hadoop: elasticsearch-spark-13\_2.10...

......

......

val sc = new sparkcontext(sparkconf)

val sqlcontext = new org.apache.spark.sql.hive.hivecontext(sc)

val df = sqlcontext.sql(sqlmov)

<//df.show>(50)

essparksql.savetoes(df, con…
[@eduardo\_curonisy](/u/eduardo_curonisy) you want the [es.mapping.routing](https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html#cfg-mapping) property.
You want something similar to this :



```
using (var context = new BloggingContext())
{
    var blogs = context.Blogs.SqlQuery("SELECT * FROM dbo.Blogs").ToList();
}

```

You can find tutorial for that here :
<http://msdn.microsoft.com/en-us/data/jj592907.aspx> You can provide an optional parameter to the scaffolding command to update only the table you target.



```
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=DatabaseName;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir DirectoryNameOfYourModels -Tables employee -f

```

If you are using .net core cli then use.



```
dotnet ef dbcontext scaffold "Server=(localdb)\mssqllocaldb;Database=DatabaseName;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o DirectoryNameOfYourModels -t employee -f

``` You can call `context.Database.Migrate()`in your `Startup.cs`


eg:



```
using (var context = new MyContext(...))
{
    context.Database.Migrate();
}

``` i do not think there is a direct way to convert a baq to a ssrs report. however, it is not very difficult to use the baq to generate the sql (to use as the dataset) and then create the report from there. in epicor (in v10 at least, but i think 9 is similar), just open the baq and it should have the "query phrase" on the first tab. copy and paste this into a new dataset you will use in your report. if you have any parameters in epicor, these should be handled by ssrs when you create the dataset. if you are using a baq report in epicor or as part of a dashboard and using a separate filter you can add a where clause and use parameters.if you have not been using ssrs already there are some good resources for setting it up with epicor that can be found online.if you have epicor support you can use the education tab in epicweb (https://epicweb.epicor.com/), it has some courses for setting this up. i used this one recently when setting one up.http://blog.datixinc.com/blog/epicor-10-ssrs-report-setup-and-overview I have the same problem and added this to the DbContext:



```
private void PrintStackTrace()
{
  var st = new StackTrace();
  foreach (var sf in st.GetFrames())
    Console.WriteLine($"{sf.GetMethod().DeclaringType.Assembly.GetName().Name} {sf.GetMethod().DeclaringType.Name} {sf.GetMethod().Name}");
}

```

and call this function in the contructor and Dispose of the DbContext.


It seems to be a problem, if the DbContext is added with scoped lifetime to the dependency injection. I filed an issue for that.


<https://github.com/aspnet/EntityFrameworkCore/issues/10693> A few things to try.


1. Use [Variable Tables](http://odetocode.com/Articles/365.aspx) instead -> maybe the import wizard prefers that?
2. Name your return fields.


Try using the following stored proc (untested .. just thinking out loud...)



```
CREATE PROCEDURE dbo.Foo
AS

    SET NOCOUNT ON

    DECLARE @ResultTable TABLE (SomeId INTEGER)

    INSERT INTO @ResultTable
    SELECT DISTINCT Id AS Identity -- Or u can rename this field to anything...
    FROM SomeExistingTableWhichHasAnIdentityField

GO

```

Try that and see if the wizard refreshes, now.


-- 


 Attempt #2 :)


Ok .. when the EF designer/wizard/whatever fails to figure out EXACTLY what my stored proc is suppose to be returning, I usually do the following :-


1. Make sure the stored procedure doesn't exist at all in the EF designer/context, etc. (You have a clean starting point)
2. Open up your stored procedure and `/* /*` comment out *EVERYTHING* after the procedure definition.


eg..



```
ALTER PROCEDURE dbo.Foo
(
    Bar1 INT,
    Bar2 TINYINT,
    ... // whatever u have as your optional input arguments //
)
AS
    SET NOCOUNT ON

    /* 
    .... every thing in here is commented out 
    */
GO

```

Now ...
 3. Add a forced fake return in the stored proc, which (more or less) just *defines* the output structure/fields.


eg..



```
ALTER PROCEDURE dbo.Foo
(
    Bar1 INT,
    Bar2 TINYINT,
    ... // whatever u have as your optional input arguments //
)
AS
    SET NOCOUNT ON

    SELECT 1 AS Id, 1 AS UserId, 1 AS SomeOtherId, 
        CAST('AAA' AS NVARCHAR(350)) AS Name,
        -- etc etc etc..
    /* 
    .... every thing in here is commented out 
    */
GO

```

[and then](http://www.youtube.com/watch?v=K7luMp6lb9M) ...


4. Add this stored proc to your EF designer/wizard/etc... Now the correct fields should be 'determined' by the designer. AWESOME. Yes .. the values are all hardcoded .. but that's ok (so far).
5. Once your happy that EF is now updated right, go back to your stored proc, and remove all hardcoded SELECT (which we did in the above step). Now we remove the comments which we commented out the entire real code. So you should have your original stored proc, back.


... and now EF is updated and doesn't know we've changed the plumbing of your stored proc.


win :)


does this work for ya? Let's say in your `settings.py` file you have:



```
SITE_URL='www.mydomain.tld/somewhere/'
SITE_NAME='My site'

```

**If you need that in just one or two views:**



```
from django.shortcuts import render_to_response
from django.conf import settings

def my_view(request, ...):
    response_dict = {
        'site_name': settings.SITE_NAME,
        'site_url': settings.SITE_URL,
    }
    ...
    return render_to_response('my_template_dir/my_template.html', response_dict)

```

**If you need to access these across a lot of apps and/or views, you can write a context processor to save code:**


James has a tutorial on this 
[online](http://www.b-list.org/weblog/2006/jun/14/django-tips-template-context-processors/).


Some useful information on the when and if of context processors is available on this very site 
[here](https://stackoverflow.com/questions/831301/when-is-it-appropriate-to-use-django-context-processors).


Inside your `my_context_processors.py` file you would:



```
from django.conf import settings

def some_context_processor(request):
    my_dict = {
        'site_url': settings.SITE_URL,
        'site_name': settings.SITE_NAME,
    }

    return my_dict

```

Back in your `settings.py`, activate it by doing:



```
TEMPLATE_CONTEXT_PROCESSORS = (
    ...

    # yours
    'my_context_processors.some_context_processor',
)

```

In your `views.py`, make a view use it like so:



```
from django.shortcuts import render_to_response
from django.template import RequestContext

def my_view(request, ...):  
    response_dict = RequestContext(request)
    ...
    # you can still still add variables that specific only to this view
    response_dict['some_var_only_in_this_view'] = 42
    ...
    return render_to_response('my_template_dir/my_template.html', response_dict)

``` i think the setting you want is in inbound routes. you can set the callerid number. the hover help reads: 
define the callerid number to be matched on incoming calls. 
leave this field blank to match any or no cid info. in addition to standard dial sequences, you can also put private, blocked, unk… [image] dueck456:

is there an easy way to detect when new code is flashed to the device so i can reinitialize the retained variables?

below is a link to a post by [@rickkas7](/u/rickkas7) about storing retained data in a struct.

[image] dueck456:

saving a know value to eeprom jumps to mind

there is … Hi Romain, 

  
  
You can use HTML formatting this way:

  
  

```
  
sender = scenario.get_message_sender(channel_id="my_channel_id")   
sender.set_params(sender="dss@company.com",   
                recipient="your.email@company.com",   
                sendAsHTML=True)  
                  
html_message="<b>All is good</b>"  
  
sender.send(subject="The scenario is doing well",   
            message=html_message)
```
  
  
 




[View solution in original post](/t5/Using-Dataiku/Is-it-possible-to-send-custom-reports-as-HTML/m-p/2194#M1517)