Hello everyone!
I’m currently having a test on webMethods (v6.1) to learn the main concepts.
And there seems to be a bug in handling of partner IDs which is quite annoying.
I’ve got two trading partners:
- the “Enterprise” called “NewCo” - has an “External ID” of type “DUNS” and value “11-111-1111”;
- the trading partner called “NewCo ClientA” - has an “External ID” of type “DUNS” and value “88-888-8888”;
Well, I’ve also created a Document Type entitled “PORequest” from an test XML file, which represents communication file from a “sender” to a “receiver”.
I extract three attributes with following XQL queries:
- /PurchaseOrderRequest[0]/fromRole[0]/PartnerRoleDescription[0]/DUNS[0] which gives me 88-888-8888 with my test XML file - I associated it with system variable “SenderID”;
- /PurchaseOrderRequest[0]/toRole[0]/PartnerRoleDescription[0]/DUNS[0] which gives me 11-111-1111 with my test XML file - I associated it with system variable “ReceiverID”;
- /PurchaseOrderRequest[0]/thisDocumentIdentifier[0]/ProprietaryDocumentIdentifier[0] which gives me 000012569 with my test file - provided just for information here.
Then, I create a Processing Rule to handle this document and call a service of mine;
- Rule name: HandlePO
- Sender (selected): NewCo ClientA
- Receiver: Enterprise (NewCo)
- Document Type (selected): PORequest
- Actions:
- Execute a service: newco.tn.processIncomingOrders
- Change User Status: PROCESSED
Finally, I test my rule, either by the green test mark in the TN Console, or via the TN Web Manager ([URL=“http://localhost:5555/WmTNWeb/”]http://localhost:5555/WmTNWeb/[/URL]): it doesn’t work, the document is correctly recognized as a PORequest, but sender & receiver are not recognized, although the values are correctly extracted from the (test) XML file (i.e. 88-888-8888 for the sender, and 11-111-1111 for the receiver) but the Default rule is used (Sender: Any/ Receiver: Any) and User Status is set to “IGNORED”.
After submitting through the TNWeb interface, I checked in the Transaction Analysis View in TN Console and the Activity Log for the corresponding transaction says:
- for column “Class”: value = Sender
=> The value originally supplied as sender ID for this document was not a valid partner ID. The value was 88-888-8888. - for column “Class”: value = Receiver
=> The value originally supplied as receiver ID for this document was not a valid partner ID. The value was 11-111-1111.
Well, the “DUNS” external ID are extracted but TN does not match them as “Partner ID” of any of the trading partners (“NewCo” or “NewCo ClientA”).
I finally had a look in the database where webMethods saves all its data, and particularly at the table PARTNERID. I have two records:
PARTNERIDID = kvtqaj002ip0gp8s0000000f
INTERNALID = kvtqaj002ip0gnv80000000a
EXTERNALID = 11-111-1111
IDTYPE = 1
SEQUENCENUMBER = 1
and
PARTNERIDID = kvtqaj002iqu38ej0000002i
INTERNALID = kvtqaj002iqu38720000002e
EXTERNALID = 88-888-8888
IDTYPE = 1
SEQUENCENUMBER = 1
I tried to use the corresponding value of “INTERNALID” to replace the value 11-111-1111 (resp. 88-888-8888) in my test XML file… and IT WORKED!!! The partners are correctly recognized.
I still can’t understand why it’s not the External ID that is used, but it’s obviously a bug or… I missed some config somewhere I wasn’t advised to !!! :sad:
Did someone already encounter this? Do you know how to fix this? :o
Note: it seems someone in my training class had success with all this, and without changing values, but I still don’t know why/how!!?
Thanks for your attention!