cancel
Showing results for 
Search instead for 
Did you mean: 

send query to B1IF

Former Member
0 Kudos

Hello guys,

I'm trying to send a SQL query to the B1IF

for example "select .... from .... where ...."

Would someone help me

Accepted Solutions (0)

Answers (1)

Answers (1)

bastian_schaefer
Active Contributor
0 Kudos

Hi,

you normally don't send a SQL towards B1if, you use the Integration Framework (B1if) to send a query towards a third party system.

Please check the embedded B1i Online help for further usage:

  • retrieve record via database inbound definition of a scenario step based on an event.
  • a SQL call atom during the integration scenario processing.
  • handover a SQL statement at the outbound of the integration scenario processing.

Additional information and some examples can be found on the SAP PartnerEdge.

The relevant chapter is Explore the Integration Framework for your business - built your own integration scenarios.

Training material: SAP PartnerEdge

Best regards

Bastian

Former Member
0 Kudos

Hello Bastian,

Thank you very much for your attention,

I am using the "atom" called "sqlcall" where you can type sql command, tested it and it worked returned the data I wanted, however now I need to put the sql command as variable as the sql command can not stay fixed in the "default SQL Statement "that is queri that instead of sql I can put a variable with the sql command I want.

I've looked at the document however no examples worked here.

bastian_schaefer
Active Contributor
0 Kudos

Hi,

please check the documentation of the SQL call atom itself by clicking the following symbol:

In general there are three options to maintain a SQL statement:

  1. Directly enter the SQL Statement (which you're using at the moment)
  2. Entering an Atom identifier (my preferred option)
  3. Entering a XPath Statement

If you use option 2. or 3. you need to use a predecessor XFORM atom to prepare the SQL statement.

In this xsl document you can also use xslt variables, parameters, ...

Best regards

Bastian

Former Member
0 Kudos

Hello Bastian,

worked, I used xpath to indicate where this my SQL command, and xpath insert it in the SQL call, however I am testing the webservice in SOAPUI and that appearing in the input tags the word "TEM" and with this word the web service does not work if I take regular works, you know what might be

bastian_schaefer
Active Contributor
0 Kudos

Hi,

you need to include the namespaces into your xslt path (//tem:GetDocList6) or just ignore namespaces using following syntax  "//*[local-name()='GetDocList6'].

Please define the namespace for "tem" in the inbound definition of your scenario step.

The following screenshot shows a namespace definition of the mobile scenario for "http://tempuri.org/":

Just enter your namespace and be aware neither to define the same namespace id twice for different urls nor using different namespace ids for the same url.

Best regards

Bastian

Former Member
0 Kudos

Hello Sebastian,

thank you for the feedback, however I tested here and not sure gave the word "TEM" not come out, and testing in SOAPUI then giving error, I do not quite understand how to make tested by placing the "Identification Namespace" // TEM: GetDocList6 and // * [local-name () = 'GetDocList6'].

Could you explain better how the namespace works.

The following error appears in the SOAP

bastian_schaefer
Active Contributor
0 Kudos

Hi,

It's still not clear for me what you want to achieve with this namespace "tem".

Maybe let's clarify the following first:

Can you please give me the full definition of this namespace "tem"?

Where does your namespace "tem" come from: Did you just enter it in the SOAPUI or does it come from a WSDL produced by B1if or from somewhere else?

From my point of view it's not necessary to work with this namespace "tem" at all, did you copy it from another integration scenario example?

Anyway if you want to work with such a namespace in the consumption of a web service, please make sure the following:

  1. Define it correctly in SOAP UI Header.
  2. Maintain the B1i Inbound definition accordingly.
  3. Align your xslt mapping to apply the additionally added namespace in your xpath.

Best regards

Bastian

Former Member
0 Kudos

Hello Bastian,

I will explain what is my problem, I created a webservice in B1IF that through my application I can not send an SQL query (SELECT), when I look in the "COCKPIT" tab in the panel "Message Log of Today", I realize that has XML with my query and the results of it, however I am unable to get this XML.

When I create a customer in my eclipse to consume the webservice it's the following error "IWAB0399E Error in Java from WSDL generating: java.io.IOException: Type GetDocListResult6Type is referenced but not defined." (follows the zoomed image), and when I test it in the SOAP WSDL functions normally. For giving this error I modified the inbound and outbound XSD to become equal to the Video "Yatsea Li - 2-Part B1if Consuming Web Services by DotNet - 5:49"

I added these XSDs ("xmlns: ns0 =" http://tempuri.org/ "targetNamespace =" http://tempuri.org/ "type =" ns0: GetDocListResult6Type ") after I change the inbound and outbound XSD It appears in the tag word "tem" when the word "tem" appears SOAPUI no longer works,, that word I did not create it anywhere.

Former Member
0 Kudos

Already managed to solve, thank you for helping Bastian.