Thursday, July 30, 2009

Limitation in "PRM ANI Utility Service" business service

I was working on one requirement which I was trying to implement using Workflow, where I need to perform the following :
a) Query on Account using EAI Siebel Adapter
b) Get the contact name for the very first child under the accounts.

requirement sounds very simple, same the case with me and I thought of using PRM ANI Utility Service to achieve the purpose with the help of just two steps in the workflow. So here is how these two steps looks like :

Process Properties:
Step1 : Query AccountBusiness Service : EAI Siebel Adapter
Business Service Method : Query
Step2 : Get Contact IdBusiness Service : PRM ANI Utility Service
Business Service Method : GetProperty

As per my expectation, I didn't get the "First Name" into process property "Name", but instead I was getting the error :

Error invoking service 'PRM ANI Utility Service', method 'GetProperty' at step 'Get Contact Id'.(SBL-BPR-00162)--Error Running Method 'Execute'.(SBL-PRM-00104)

I was getting crazy as not able to figure it out what exactly the root cause of it, but after some hit and trials it worked fine for me when there was only one single child record (Contact) under the Account for which I was querying. So let me tell you the reason why I was getting the error :



This is the snapshot from the watch window, where you can see there were actually 3 records under the accounts for which I was querying and due to this PRM ANI Utility Service was not able to figure it out for which record I need the First Name. So this is the limitation of this business service and you need to make sure while using "GetProperty" and "SetProperty" of this business service that there should not be more than one child in the propertyset.

I tried with querying for the Account having single Contact associated and it worked fine. So the only workaround is to write a customize business service if you want to get/set a property value of any child record.
Give it a try !!
.

5 comments:

  1. You can try using the Workflow Utilities Business Service for this purpose

    ReplyDelete
  2. Its because you are doing it wrong, you are supposed to get the child PS and GetProperty or GetHierarchyValue from there. It is not a limitation

    ReplyDelete
  3. Hi Gaurav,

    I hope this workflow is for Webservice.
    Can you tell me how are you simulating the webservice without sending webservice request.
    I want to know how to test the webservice workflow before publishing it.

    Tahnks and regards
    ratna

    ReplyDelete
  4. I believe this is among the such a lot vital information for me.
    And i am happy reading your article. But should observation on
    some general issues, The site taste is wonderful, the articles is
    in point of fact excellent : D. Excellent process,
    cheers

    Feel free to visit my web-site :: Digital Publishing Blueprint

    ReplyDelete
  5. Can any one tell me.. how to get a property value in case of multiple instaces without any scripting. ?

    ReplyDelete