Forum Stats

  • 3,874,124 Users
  • 2,266,687 Discussions
  • 7,911,731 Comments

Discussions

B2B Deployment overrides the Business Action Selection for Inbound

760581
760581 Member Posts: 14
edited Mar 22, 2010 9:11AM in Integration - B2B
Hi,

Following is the scenario, please let me know what configuration mistake I am doing and give me any possible Fix or Work around.

a. Host_TP_AS2_ID_1 & External_TP_1 ---> Agreement_A --> BusinessAction_A --> Document Rev. Protocol_A --> DocumentType_A --> DocumentDefinition_A
b. Host_TP_AS2_ID_2 & External_TP_2 ---> Agreement_B --> BusinessAction_B --> Document Rev. Protocol_B --> DocumentType_B --> DocumentDefinition_B

Document Definition for both A and B as follows...

DD for A:
To Role: Host_TP_AS2_ID_1 (host)
From Role: External_TP_1
Identification Expression (XPath) for XML Document: /*[local-name()='Pip3B12ShippingOrderConfirmation']
Document Routing ID: DT_Pip3B12ShipOrderConf

DD for B:
To Role: Host_TP_AS2_ID_2 (host)
From Role: External_TP_2
Identification Expression (XPath) for XML Document: /*[local-name()='Pip3B12ShippingOrderConfirmation']
Document Routing ID: DT_Pip3B12ShipOrderConf


When I create a new deployment for "a" and deploy, the inbound finds the right Agreement for the incoming Trading Partner Identifiers, Business Action and successfully processing it.
When I create a new deployment for "b" and deploy, the inbound cannot find the right Business Action, It error out saying that for Host_TP_AS2_ID_2 & External_TP_2, not able to find the "BusinessAction_A".

Now the question, for the second set of Trading Partner combination ("b"), why is it looking for Business Action of "a".
The Interesting part is, if I deploy the "b" first and "a" second, the Error is the other way.

Did anybody B2B customer encountered any kind of issue like this. Is there any solution, patch or work around for this kind of issue.

Thanks
Bala

Best Answer

  • Nitesh Jain-Oracle
    Nitesh Jain-Oracle Member Posts: 664
    Below is the commands to stop/drop/create/start the AQs(change the queue name as per your requirement ('B2B.IP_IN_QUEUE)):
    execute dbms_aqadm.STOP_QUEUE('B2B.IP_IN_QUEUE')
    execute dbms_aqadm.DROP_QUEUE('B2B.IP_IN_QUEUE')
    execute dbms_aqadm.create_queue (queue_name => 'B2B.IP_IN_QUEUE', queue_table => 'B2B.IP_QTAB');
    execute dbms_aqadm.START_QUEUE('B2B.IP_IN_QUEUE')

    you can use this for the AQ in DB and Create the Internal Delivery channel in B2B with point to these queues for your usecase.

    Rgds,
    Nitesh Jain
«1

Answers

  • Hi Bala,

    Please make sure the xpath (Identification Expression) is unique in the entier repository(enterprise). So that the document will get Identify the document type and revision based on the xpath expression.

    Regards
    Nandagopal
    Nandagopal.S-Oracle
  • Hi Bala,
    Custom document is identified based on XPath Expression.
    In you case ,B2B is always returning the first identified document.
    You can use only one document definition for both the trading partners.

    Rgds,
    Nitesh Jain
    Nitesh Jain-Oracle
  • 760581
    760581 Member Posts: 14
    Hi Nandagopal and Nitesh,

    Thanks so much for your answers. That definetly makes sense to me now. I thought as long as the DD is tied to a different Buss. Action and Agreement, It should not be matter. But, it looks like Unique Expression does matter.

    Just one more additional question on the same line,
    Is the ToRole and FromRole Mandatory to configure on the Inbound or Can I just leave it blank? Please clarify it.

    Once again, Thank you to great Gurus.

    Thanks
    Bala
  • ToRole and FromRole are optional field.
    If you want to identify the document based on Action,Service and ServiceType then dont define any Xpath.

    Rgds,
    Nitesh Jain
    Nitesh Jain-Oracle
  • 760581
    760581 Member Posts: 14
    Great Nitesh...Thank you so much. So Helpful right in time.
  • 760581
    760581 Member Posts: 14
    Hi,

    I am using AS2 1.1 Protocol over HTTP and using Custom Document Over Internet.
    In this scenario, can you please tell me how to implement this Document Based on Action, Service and Service Type in order to avoid the XPath Expression.

    Also any document location would be helpful.

    Thanks
    Bala
  • Hi Bala,
    Action, Service and Service Type is used in ebMS/ebXML standard not in AS2.
    If you are using custom over AS2 then you have to apply Xpath expression to identify the document.

    Please elaborate your use case for more details.

    Rgds,
    Nitesh Jain
    [email protected]
    Nitesh Jain-Oracle
  • 760581
    760581 Member Posts: 14
    Hi Nitesh,

    Thanks for the reply. Very useful.

    Thanks
    Bala
  • 760809
    760809 Member Posts: 1
    Use case still remains the same -
    Following is the scenario, please let me know what configuration mistake I am doing and give me any possible Fix or Work around.

    a. Host_TP_AS2_ID_1 & External_TP_1 ---> Agreement_A --> BusinessAction_A --> Document Rev. Protocol_A --> DocumentType_A --> DocumentDefinition_A
    b. Host_TP_AS2_ID_2 & External_TP_2 ---> Agreement_B --> BusinessAction_B --> Document Rev. Protocol_B --> DocumentType_B --> DocumentDefinition_B

    Document Definition for both A and B as follows...

    DD for A:
    To Role: Host_TP_AS2_ID_1 (host)
    From Role: External_TP_1
    Identification Expression (XPath) for XML Document: /*[local-name()='Pip3B12ShippingOrderConfirmation']
    Document Routing ID: DT_Pip3B12ShipOrderConf

    DD for B:
    To Role: Host_TP_AS2_ID_2 (host)
    From Role: External_TP_2
    Identification Expression (XPath) for XML Document: /*[local-name()='Pip3B12ShippingOrderConfirmation']
    Document Routing ID: DT_Pip3B12ShipOrderConf


    The only additional complexity is we need to route the documents we receive from different trading partners to different bpel processes so that trading partner specific logic can be applied to the processing in bpel.
  • Are you using Oracle B2B 11g or 10g ?
    You can achieve the same by defining the different internal delivery channel with respect to TP.

    You can implement like:
    1. define only one document definition in the documents with Xpath ('Pip3B12ShippingOrderConfirmation').
    2. Use this document for both the trading partner.
    3. As you said you want to redirect the message based on TP then define Internal delivery channel.
    4. Use the proper channel in the agreement to redirect the message to specific queue or bpel process.

    Rgds,
    Nitesh Jain
    Nitesh Jain-Oracle
This discussion has been closed.