cancel
Showing results for 
Search instead for 
Did you mean: 

How to Send data from Byd to an External Website, and Receive it Back ?

Former Member
0 Kudos
102

I have a scenario in which I want to send the data from my custom BO to an external website, not manually ,

rather some way in which whenever I update or create a new BO instance, there is some mechanism which will help me in sending this data to an external website....

Please Help me out on this.

Accepted Solutions (0)

Answers (6)

Answers (6)

Former Member
0 Kudos

I figured this out myself after. In case anyone was wondering, the PublicOutpotEC was not getting fired. Setting the RequestFireOnInitialization Property to true on my Embedded Component's Inport fixed it.

Former Member
0 Kudos

I have found that there are some severe limitations (With good reason) to the Sliverlight Http Stack. External web services need to have cross domain polices in place to accept calls from a silverlight client. When you don't own the web service being called, this can be a huge headache.

@Felix Do you have any examples of the code you used to access ByDesign data from your Silverlight control?

Former Member
0 Kudos

Hi Mark,

I added a property to my CustomPane of type "ISDKDataField" (in the example it is called "MyText") and query a member from the datamodel in the constructor of my CustomPane:

MyText = this.Controller.DataContainer.RootStructure.GetMember(DATA_FIELD_MYTEXT) as ISDKDataField;

To be notified about changes to MyText from Business ByDesign you have to add an event handler to "MyText.ValueChanged".

To set a value to the field from your control you have to assign the "Value" property and if necessary call "ProcessRoundtrip()".

The rest is databinding in ByDesign Studio.

Did you have any of these steps in your CustomPane?

If you need any further help, just let me know

Best regards,

Felix

Former Member
0 Kudos

Hi Felix,

I did as you suggested in your last post and now i am getting the following exception when I try to load my screen with the Embedded component:

Unable to parse the component model: For the data field /Root/ProjectUUID, a parent data container binding with the interface name ProjectUUID is declared. However, no binding was found for this name within the parent's embedding declaration.

Have you come across this one?

I am trying to embed my custom pane into displayprojectqafeco and I think my issue is the bindings. Have you embedded your Silverlight control into an existing screen?

Former Member
0 Kudos

Hi Mark,

I've seen so many error messages during development of my Custom Pane, I can't remember By now I only embedded CustomPanes into my own screens. But there's a good chance, that the error is not caused by embedding the control into an existing screen.

What fields and bindings have you created in datamodel and controller of your EmbeddedComponent? And how do you integrate it into the existing screen? (How do you access/bind to control there?)

Regards,

Felix

Former Member
0 Kudos

Hi Felix,

These are the steps that I have taken:

I have Created a DataField at the root of my EC called ProjectUUID Then in the controller, i created an Inport bound to that data field.

Then on displayprojectqafeco I added my EC(with custom pane uploaded) to the PaneContainer Anchor and bound the PublicOutportECProjectRoot Outport to the Inport that I created.

My CustomPane contains the following code:


    [SDKPaneConfigAttribute("ByDCustomPane.CustomPane", "ByDCustomPane.dll")]
    public class CustomPane : SDKCustomPane
    {
        private ISDKDataField MyText;
        private const string OBJECT_UUID = "ProjectUUID";
        
        protected override void OnInitialize()
        {
            MyText = this.Controller.DataContainer.RootStructure.GetMember(OBJECT_UUID) as ISDKDataField;
            this.Content = new MainPage(MyText);
        }

        protected override void OnTerminate()
        {
            
        }
    }

and the constructor of my MainPage looks like this:


        public MainPage(ISDKDataField CurrentObject)
        {
            InitializeComponent();
            lstTitles.Items.Add(CurrentObject.Value);
        }

In my head, it looks like this should add the UUID of the project that I am displaying to a list box in my custom pane. While I am no longer getting the error that I mentioned in a previous post, it only adds a blank item.

Does anything here stand out?

Former Member
0 Kudos

Doing this seems to be fairly popular and I am currently working on a project that requires this type of functionality. I've looked into Mashups and their Outports are quite limiting in terms of data that is able to be sent.

Right now I am experimenting with Custom Silverlight panes and I seem to be getting somewhere (IE. able to call external web services from the custom control) However I am having trouble trying to figure out how to actually get data from the underlying ByD screens into the control. I have read through the Documentation and it seems pretty vague and lacking in examples. I've also followed the instructions in the for the Best_Employee example in the documentation and I can't seem to get it to work. Also I can't seem to find the actual code for this component anywhere.

Can anyone with Custom Pane experience chime in?

I think there really should be better documentation around this aspect of the ByDesign SDK

Former Member
0 Kudos

I have also thought of developing a CustomSilverlight Control (CustomPane) to do webservice calls and got it to work. Even with communication between the CustomPane and ByDesign (for string fields).

But there are some issues one has to consider when using CustomPanes:

- on development side I have huge trouble with updating the CustomPane in ByDesign and since I tried to implement a numeric field I have problems to get the bindings to work...

- on user side you should consider, that Silverlight is executed from the client, i.e. calls to the web (e.g. a webservice) could be hampered by a local firewall

Therefore I would rather like to use native calls to webservices right out of ByDesign...

Former Member
0 Kudos

I would like to :-

1. send some data to the outside webside's element

2. Trriger a url alpng with passing may data values from myBO

3. Also , From th External website transfer some data back to and store in my BO in ByD

Please Help me Out..

Former Member
0 Kudos

Hi,

the only way to sent data from byDesign to external system is to develop a silverlight custom control (you have to manually trigger sending) -> please ask your development coach.

Or using a mashup...

To periodical receive data, you can only use webservices...to manual receive data, you can use silverlight custom control as well.

Regards,

Andreas

Former Member
0 Kudos

Hi,

indeed only mashups currently support the requested use case of consuming web services. But this is restricted to UI. General web service consumption within ABSL is currently not supported.

Regards,

Thomas

Former Member
0 Kudos

Hi,

I am also interested in the topic of sending data from ByDesign outside and receive something back.

My question is: How secure are mashups for such a job?

Is it possible to pass login data, so that only authorised people/systems can access the external website.

And is it possible to encrypt all the data, especially login data e.g. by using https?

Does anyone know or have experience with that?

Thanks in advance,

best regards,

Felix

Former Member
0 Kudos

Hi Milin,

Do to want to send some data to the outside webside's element or you just want to trigger a URL ?

Regards,

Kelvin

Former Member
0 Kudos

Hi Kelvin,

I would like to :-

1. send some data to the outside webside's element

2. Trriger a url alpng with passing may data values from myBO

3. Also , From th External website transfer some data back to and store in my BO in ByD

Please Help me Out..

Former Member
0 Kudos

Only an idea....

You can create a EventHandler with type "OpenLink".

On this type you can bind a datafield on your URI / URL

....but this could become a security risk