I guess, also there would be some sort of default schema built-in (e.g.
salesforce.com has some default schema out of the box) and like you guys
discussed ability to refresh from live connection.

On Mon, Jun 20, 2016 at 8:13 AM, Malaka Silva <[email protected]> wrote:

> ​
> Hi Maheeka,
>
> On Mon, Jun 20, 2016 at 10:22 AM, Maheeka Jayasuriya <[email protected]>
> wrote:
>
>> ​​
>> Hi Malaka,
>>
>> In order to get the dynamic schemas we need a connection to Salesforce.
>> Right now we are not providing the connection when getting the schema for a
>> connector. Refer screenshot below.
>>
>
> ​IMO design time connection should be independent from run time
> connections.​
>
>
>>
>> [image: Inline image 1]
>>
>> How about we keep a property (a flag) in the connector meta-data whether
>> it is a dynamic schema connector or a static schema connector. If it is a
>> dynamic schema connector, in addition to above, we can add a field to
>> select the connection (from already created connections) and perform the
>> partner API call there. Instead of operation field we can load the entity
>> definitions to load the schema.
>>
> ​Yes those can be added later. Generating dynamic schema part should not
> be a part of connector. However some reference should be there and should
> be available to the tool on demand.
>
> First we need to find the best way to integrate this to tooling. Will
> arrange an discussion on this.
>
>>
>>
> Thanks,
>> Maheeka
>>
>> Maheeka Jayasuriya
>> Senior Software Engineer
>> Mobile : +94777750661
>>
>> On Sat, Jun 18, 2016 at 8:01 PM, Malaka Silva <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> Data mapper will be introduced with ESB 5.0.0 tooling soon. This
>>> discussion is related to using data mapper with connectors in your
>>> integration flow.
>>>
>>> Data mapper is a tool that work at design time. So for each connector
>>> operation we need to include a schema in order to make use of data mapping.
>>>
>>> Currently there are two types of connector operations.
>>>
>>>    1. Static output and/or input required - If the connector always
>>>    produce same output format no issue and we can simply generate the schema
>>>    and bundle it with connector.
>>>    2. Dynamic output and/or input required - This is becoming a
>>>    changeling since output may change depend on the customization done on
>>>    individual apps.
>>>
>>> Good example is Salesforce. Object structure from one Salesforce org to
>>> another org can be different.
>>>
>>> So we need some generic mechanism to run this dynamic schema generation
>>> within tooling and specific implementation should be included in the
>>> connector.
>>>
>>> However including this part in a connector can make the connector heavy
>>> and this may not require during the run time. Best we have those in some
>>> place and get to tooling on demand.
>>>
>>> I have done a POC how we can do this for Salesforce. Sample code is
>>> available in [1]. We may have to do the same for each method.
>>>
>>> Here we are using metadata api to get the sObject list. Partner api
>>> describe sObject method to get fields.
>>>
>>> So this way we can get the required input and output and using this we
>>> can generate the schema. This is purely written in java.
>>>
>>> Now the next challenge is to include this with ESB tooling and
>>> connectors. Please put your suggestions.
>>>
>>> [image: Inline image 1]
>>>
>>> [image: Inline image 2]
>>>
>>> Generated output.
>>>
>>> Query
>>>
>>> <records xmlns:xsi="sfdc" xmlns:sf="sfdc" xsi:type="sf:sObject">
>>>     <sf:type>Account</sf:type>
>>>     <sf:Site>UK</sf:Site>
>>>     <sf:LastModifiedDate>2016-01-05T09:44:15.000Z</sf:LastModifiedDate>
>>>     <sf:Ownership></sf:Ownership>
>>>     <sf:Description>Test</sf:Description>
>>>     <sf:BillingCity></sf:BillingCity>
>>>     <sf:Rating></sf:Rating>
>>>     .........................................
>>> </records>
>>>
>>> Upsert
>>>
>>> <sfdc:sObjects xmlns:sfdc="sfdc" type="Account">
>>>     <sfdc:sObject>
>>>         <sfdc:Site>value</sfdc:Site>
>>>         <sfdc:LastModifiedDate>value</sfdc:LastModifiedDate>
>>>         <sfdc:Ownership>value</sfdc:Ownership>
>>>         ................................
>>>         ...............................
>>>     </sfdc:sObject>
>>> </sfdc:sObjects>
>>>
>>> [1]
>>> https://github.com/malakasilva/ESB/tree/master/salesforce-dynamic-schema
>>>
>>> Best Regards,
>>>
>>> Malaka Silva
>>> Senior Technical Lead
>>> M: +94 777 219 791
>>> Tel : 94 11 214 5345
>>> Fax :94 11 2145300
>>> Skype : malaka.sampath.silva
>>> LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77
>>> Blog : http://mrmalakasilva.blogspot.com/
>>>
>>> WSO2, Inc.
>>> lean . enterprise . middleware
>>> http://www.wso2.com/
>>> http://www.wso2.com/about/team/malaka-silva/
>>> <http://wso2.com/about/team/malaka-silva/>
>>> https://store.wso2.com/store/
>>>
>>> Save a tree -Conserve nature & Save the world for your future. Print
>>> this email only if it is absolutely necessary.
>>>
>>
>>
>
>
> --
>
> Best Regards,
>
> Malaka Silva
> Senior Technical Lead
> M: +94 777 219 791
> Tel : 94 11 214 5345
> Fax :94 11 2145300
> Skype : malaka.sampath.silva
> LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77
> Blog : http://mrmalakasilva.blogspot.com/
>
> WSO2, Inc.
> lean . enterprise . middleware
> http://www.wso2.com/
> http://www.wso2.com/about/team/malaka-silva/
> <http://wso2.com/about/team/malaka-silva/>
> https://store.wso2.com/store/
>
> Save a tree -Conserve nature & Save the world for your future. Print this
> email only if it is absolutely necessary.
>



-- 
Dmitry Sotnikov
VP of Cloud; WSO2, Inc.;  http://wso2.com/
email: [email protected]; cell: +1.949.303.9653; Skype: DSotnikov
Lean . Enterprise . Middleware

<http://wso2.com/events/>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to