Get IdM accountId in per-account reconciliation workflow

I'd like to get IdM accountId in per-account reconciliation workflow. But $(accountId) just returns the resource's id, e.g. CN=ABC 001,OU=IT,DC=ABC,DC=COM. How can I get the IdM accountId, e.g. abc001, in the workflow, so that I can modify the user's view?

Hi Anders,
Yes this is a tricky one, here's some code to get the IdM accountId given the resource accountId, hope this helps.
<Rule name='Find AccountId Given Resource ID and Identity'>
        <RuleArgument name='resourceIdentity'/>
        <RuleArgument name='resourceId'/>
        <rule name='RuleLibrary_UseCase2:Find AccountId Given Lighthouse Attr'>
          <argument name='attrName' value='resourceAccountIds'/>
          <argument name='attrValue'>
            <concat>
              <ref>resourceIdentity</ref>
              <s>@</s>
              <ref>resourceId</ref>
            </concat>
          </argument>
          <argument name='comparison' value='equals'/>
        </rule>
      </Rule>
      <Rule name='Find AccountId Given Lighthouse Attr'>
        <RuleArgument name='attrName'/>
        <RuleArgument name='attrValue'/>
        <RuleArgument name='comparison'/>
        <block>
          <defvar name='queryOptions'>
            <new class='com.waveset.object.QueryOptions'/>
          </defvar>
          <invoke name='addOrderBy'>
            <ref>queryOptions</ref>
            <s>name</s>
          </invoke>
          <invoke name='setBuffered'>
            <ref>queryOptions</ref>
            <Boolean>true</Boolean>
          </invoke>
          <invoke name='setOnlyNames'>
            <ref>queryOptions</ref>
            <Boolean>true</Boolean>
          </invoke>
          <invoke name='addCondition'>
            <ref>queryOptions</ref>
            <new class='com.waveset.object.AttributeCondition'>
              <ref>attrName</ref>
              <cond>
                <ref>comparison</ref>
                <ref>comparison</ref>
                <s>equals</s>
              </cond>
              <ref>attrValue</ref>
            </new>
          </invoke>
          <index i='0'>
            <invoke name='toList'>
              <invoke name='listObjects'>
                <invoke name='getLighthouseContext'>
                  <ref>WF_CONTEXT</ref>
                </invoke>
                <invoke name='findType' class='com.waveset.object.Type'>
                  <s>User</s>
                </invoke>
                <ref>queryOptions</ref>
              </invoke>
              <s>name</s>
            </invoke>
          </index>
        </block>
      </Rule>

Similar Messages

  • Per account workflow not being executed

    I am trying to run a per account workflow,
    so that when a user in a Resouce(Authoritative source) gets deleted,
    during reconciliation the per account workflow should get executed there by disabling all the resource accounts for the user .
    I added the following workflow int the 'Per account workflow' tab of my reconciliation policy
    my reconciliation runs sucessfully however i do not see any changes in the users account , it seems the Workflow is not getting executed..
    The code for the workflow is as below
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE TaskDefinition PUBLIC 'waveset.dtd' 'waveset.dtd'>
    <!--  MemberObjectGroups="#ID#Top" createDate="Fri Feb 24 18:31:31 PST 2006" id="#ID#BC7431C56D947D4E:194DF96:1099F0627CB:-7FFB" name="Custom Workflow" visibility="runschedule"-->
    <TaskDefinition id='#ID#BC7431C56D947D4E:194DF96:1099F0627CB:-7FFB' name='Custom Workflow' lock='Configurator#1141081471234' creator='Configurator' createDate='1140834691093' lastModifier='Configurator' lastModDate='1140843754062' lastMod='96' taskType='Workflow' executor='com.waveset.workflow.WorkflowExecutor' suspendable='true' syncControlAllowed='true' execMode='sync' execLimit='0' resultLimit='0' resultOption='delete' visibility='runschedule' progressInterval='0'>
      <Extension>
        <WFProcess name='Custom Workflow' maxSteps='0'>
          <Variable name='userName' input='true'/>
          <Variable name='accountId' input='true'/>
          <Variable name='loginApplication' input='true'/>
          <Variable name='resource' input='true'/>
          <Activity id='0' name='start'>
            <Transition to='Disable User'>
              <eq>
                <ref>initialSituation</ref>
                <s>AR_SITUATION_NAME_DELETED</s>
              </eq>
            </Transition>
            <WorkflowEditor x='56' y='225'/>
          </Activity>
          <Activity id='1' name='Disable User'>
            <Variable name='WF_ACTION_ERROR'/>
            <Variable name='user'/>
            <Action id='0'>
              <expression>
                <set name='user.resourceAccounts.selectAll'>
                  <Boolean>true</Boolean>
                </set>
              </expression>
              <Argument name='op' value='disableUser'/>
              <Argument name='accountId' value='$(accountId)'/>
              <Argument name='doWaveset' value='true'/>
            </Action>
            <Transition to='Clear Task Results'>
              <isnull>
                <ref>WF_ACTION_ERROR</ref>
              </isnull>
            </Transition>
            <Transition to='end'/>
            <WorkflowEditor x='362' y='23'/>
          </Activity>
          <Activity id='2' name='Clear Task Results'>
            <Action id='0' application='SET_RESULT_LIMIT'>
              <Argument name='limit' value='0'/>
            </Action>
            <Transition to='end'/>
            <WorkflowEditor x='373' y='224'/>
          </Activity>
          <Activity id='3' name='end'>
            <WorkflowEditor x='564' y='171'/>
          </Activity>
        </WFProcess>
      </Extension>
      <MemberObjectGroups>
        <ObjectRef type='ObjectGroup' id='#ID#Top' name='Top'/>
      </MemberObjectGroups>
    </TaskDefinition>Can anyone help me with this?

    Hi,
    It could be that the workflow is being executed
    but it is not doing the correct thing.
    Why dont you load the workflow into the debugger,
    set a breakpoint on it and then run reconcilliation.
    That way you will know for sure if the workflow
    is being executed.
    John I

  • Per Account Workflow Example

    Can anyone point me to or post an example of a complete per account workflow that is used to modify the attributes of each user. I'm looking for one or more good examples to answer a few basic questions. 1) Do I need to checkout a user view with a per account workflow or is this already done for me? 2) How exactly do I reference the attributes of each user in a per account workflow when I want to make a change to that attribute?
    Any help appreciated, but I'm really look for complete code samples, and not just snippets.
    Thanks,
    Gary
    UC Davis Vet Med Teaching Hospital

    Hi,
    I know it is virtually impossible to find anything in the forum now, so I'd like to point you to an old thread that might answer your question.
    http://forums.sun.com/thread.jspa?threadID=5227870&messageID=9931369#9931369
    Pauls code in the last post may be the answer to your problem. Still I keep my stance from my post in this thread - while it works it does not scale...
    Regards,
    Patrick

  • Per Account Workflow and parameters

    I added an attribute in the User Extended Attributes.xml called status
    In my per account workflow, I pass in this variable as
    <Variable name='status' input='true'/>
    But it does not pass in the value. Do you have any ideas?

    sorry. in the deployment tools document, there's a section about per account workflow. It specifies all the parameters that are passed into a per account WF.

  • Attachment downloads per account

    I maintain several account in Mail under Lion. I see on the General tab of Preferences how to specify a specific location to download all attachments, but what if I want to use separate folders to store attachments per mail account. I've tried to create a rule but don't see an obvious way to do it. Any suggestions, or plug-ins, that can accomplish this?
    Thanks!

    reconciliation really isn't meant for creating accounts on other systems.
    That's more of a function through active sync. depending on which version of idm you're using you can use the meta view functionality or just vanilla active sync.
    also - per account workflows are notorious for performance problems because I think they are called even if they dont need to be run.

  • Accounts Payable Workflow Parking Invoices

    Dear Viewers,
    I am having the requirement for Accounts payable workflow Parking. My requirements are as follows:
    1. Parking the Invoice by User 1.
    2. Verified by the User 2. If the he should have option to change or Reject or Approve. As per the standard workflow only changes or not allowed if the person is having the amount release authorization.
    3. Approval for Posting by the User 3. Once, he approves document should be posted.
    Could anyone please give some input to get some idea on this?
    Thanks in advance.
    Thanks
    Aswin

    Hi ,
    In standard SAP you can set up to 3 levels of authorization using the workflow WS10000051 and sub worflow WS10000053 for 2 levels of apporvals .
    Navingate as follows - SPRO - Financial acounting new - accounts receivable and payable - business transactions - incoming invoices / credit memo - make and check settings for document parking .
    Under this node you will find the relevant settings for the workflow .
    Regards ,
    Dewang T

  • Reconciliation Workflow

    Does anyone have a sample of a reconciliation workflow they can share?
    We need to run recon against AD and remove a role from a lighthouse account if the user is not found in AD.
    Any help would be appreciated.

    What you could do is to reconcile the AD, and link the AD users to IdM-users. Then you run a specific stand-alone workflow that removes your role if there is no link to AD. And last, if you don't need the link to AD, just run yet anther stand alone workflow, or bulk update, and remove the AD-link.
    Could also be done in one Workflow.

  • Per Account WF issue in IDM6.0

    hi, I am implementing the following.
    1. load users from LDAP to IDM using Recon form
    2. create AD accts via perAcctWF.
    When the Recon is run the first time around, perAcctWF has no access to userName variable!!!. But If I the run the recon next time, I see the userName available for me to checkout a viea and create a AD acct. Is this normal behavior? Given that we have 70K users, running a recon twice is taking a lot of time.
    Here is the error when the first recon is run:
    An error occurred in the per-account workflow for account ucsbcampusid=578f245f-8750,dc=example,dc=com: com.waveset.util.WavesetException: Missing view id.
    The WF tries to checkout by passing userName as id . Since it is not available the first time around, I see the above error. But the second recon run goes smoothly.
    Venu Alla

    Hi Venu Alla,
    I've got here exactly the same problem as you described it. Could you figure out any solution?
    Best regards,
    Sebastian

  • PO Account Generator Workflow

    We are customizing following account generator workflows:
    1. PO Requisition Account Generator(POWFRQAG)
    2. PO Account Generator(POWFPOAG)
    Requirement: When user enters charge account manually for requisition/purchase order, SEGMENT4 value has to be updated based on business rules. Based on new SEGMENT4 value, charge account should be updated accordingly. User will be entering the charge account manually.
    Problem: We have included required customization in these workflows. 'CODE_COMBINATION_ID ' attribute(charge account id) is updated with new CCID value. However this value is not getting reflected in the form.
    Example: Charge account ID which is entered manually in the form is 14049. As per business rules, new charge account id will be 14052. However this value when passed to the form is not getting updated. When we see workflow attribute values from 'Status Monitor', charge account id is having the value 14052.
    So the main question is whenever charge account is entered manually, requisition/purchase order form allows updating charge account through workflow? Generally, if project related information is entered, charge account can be overwritten with workflow. However in our case, we are not having any project related information. Based on charge account which is entered manually, we will be updating SEGMENT4 & then generate a new CCID. Any suggestions or pointers will really help.
    Thanks /Santanu

    Hi Asif,
    Thanks for the reply.
    I referred the links mentioned by you, but couldn't find anything relevant to re-triggering of Account Generator workflow.
    The customizations I did are working fine and is triggering the workflow. But my Question is, what are the circumstances that re-trigger the Account Generator for a given Purchase Order.
    To elaborate, say for instance I have created a PO for PO category 'Electrical Equipments' furnishing all other details and charge account is generated for this category, and the PO is saved. Now I come back and change the PO category to 'Medical Equipments' for the same PO, retaining all the other info same.
    So here, will the Account generator be re-triggered to generate different charge account?
    Kindly suggest.
    Thanks,
    Nivedana

  • Please tell me a BAPI to get Closing balance of customer account based on Sales Organization?

    Hi Experts,
    A requirement has come up where I want to get Customer closing balance based on its sales organization as this particular customer is extented to 2 different sales organizations. I want to get the closing balance of individual sales organization vise.
    Please tell me a BAPI to get Closing balance of customer account based on Sales Organization?

    AFAIK there is no such BAPI, cause there is no database table with balance for customer per sales organisation. (No KNCx table for VKORG)
    First ask functionals (*) how to recover sales organisation from a FI document (I suppose for SD invoice it is easy if no merging between organisation) will be a little tricker for pure FI document like payment transactions (hope thet are quickly cleared...)  Then start from non cleared records of BSID (also BSAD if you use a past date of reference, in case you have to add the records of BSAD with clearing date greater than reference date) and cross it with SD information to break FI into sales organisation.
    Regards,
    Raymond
    (*) Ask for where do they store VKORG in FI documents

  • Have 5 devices, only one apple ID, iCloud should be 5 gb per device not per account.

    Do I really have to create multible id's in order to be able to backup using iCloud. I have 2 iPad, 1 iPhone and 2 iPod and I still only get 5 gb of storage, but if I create a new account for each device I get 5 Gb each? Why?

    It's 5 GB per account, regardless of how many devices are connected to that account.  If you need more space, Apple provides the option to buy additional storage.  If you want each of your devices to sync the same email, contacts, calendars, reminders, notes, etc. then use just one account, otherwise get a different account for each device.

  • Workflow Error Message: System Account - The Workflow could not set Content Approval Status

    This is the first time I try an approval workflow. I am using a template in MS Word and assigned an approval workflow to it. The approval workflow is only going to one person in this case.
    When I start the work flow the following 3 error messages show up:
    Workflow Error Message: System Account - The Workflow could not set Content Approval Status. Enable content moderation for this list and run the workflow again.
    Workflow Error Message: System Account - The e-mail message cannot be sent. Make sure the e-mail has a valid recipient.
    Workflow Error Message: System Account - The e-mail message cannot be sent. Make sure the outgoing e-mail settings for the server are configured correctly.
    Thank you for your kind guidance.

    Hi,
    For the first error: Did you set Content Approval in the workflow?  If so, see if you have it in the versioning settings of the list settings.
    For the second error: double check your recipient is set up as being valid.  Did you type in the email address or is it referring to a people picker field?  also, make sure that in the workflow for the email that you actually populated it in the
    To: field.
    for the third error: I suspect that either your farm is not configured for email.  Or, this error is a knock on from the second error.  If you get the second error rectified it may clear this error.  If not then double check the email settings
    for your farm.
    Johnathan Lightfoot

  • Help Required in : PO Account generator workflow customization.

    Hi All,
    I am new to workflow, I want to customize PO account generator workflow in 11i. I need to build the logic to populate charge-account on PO.
    I have identified the process in PO Account generator workflow but I am not sure whether I should pick the same process for modification or create new process.
    As I don't want if any upgrade patch applied , it will overwrite modified standard process. I have read articles on preserving customizations but couldn't get much from it, they are very confusing.
    Please help.
    Thanks in Advance.

    Hi Asif,
    Thanks for the reply.
    I referred the links mentioned by you, but couldn't find anything relevant to re-triggering of Account Generator workflow.
    The customizations I did are working fine and is triggering the workflow. But my Question is, what are the circumstances that re-trigger the Account Generator for a given Purchase Order.
    To elaborate, say for instance I have created a PO for PO category 'Electrical Equipments' furnishing all other details and charge account is generated for this category, and the PO is saved. Now I come back and change the PO category to 'Medical Equipments' for the same PO, retaining all the other info same.
    So here, will the Account generator be re-triggered to generate different charge account?
    Kindly suggest.
    Thanks,
    Nivedana

  • PO Account Generator Workflow - Need Help

    Hi All,
    My Requirement is to customize the PO Account Generator Workflow such that the General Default charge Account is choosen based on PO Line Type.
    My Plan is to do as below:
    select count(*)
    from po_lines_all
    where line_type = 'Goods'
    and po_line_id = :line_id
    and po_header_id = :header_id;
    Could you please help me how can I get the :line_id and :header_id here. I mean what should be the value to be passed to getattrbvalue which returns the line_id, header_id.
    Thanks in Advance.

    This sounds like Oracle Applications.
    I suggest you ask your question in the E Business Suite section of the Forums, that's the place for Oracle Apps questions.
    Tony

  • I'm not getting proper output as per the Program

    Hi Experts,
             As i'm executing my ALV report regarding Customer Invoice on Production client I'm not getting proper output as per the program but when i execute the same report on Development client i'm getting proper output.
          Can anybody tell me how can i resolve this problem on production client? 
          Actually i've updated my report on my old report but still i'm getting old output of my report on production client, Program is showing updated code but at execution i'm getting old output.

    FORM Z_CREATE_FIELD_CATALOG.
    I_FCAT-FIELDNAME = 'BUKRS'.
      I_FCAT-HOTSPOT   = 'X'.
      I_FCAT-OUTPUTLEN = '00006'.
      I_FCAT-SELTEXT_L = 'Comp.Code'.
      I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
    I_FCAT-FIELDNAME = 'BELNR'.
    I_FCAT-HOTSPOT   = 'X'.
    I_FCAT-OUTPUTLEN = '000013'.
      I_FCAT-SELTEXT_L = 'Document No'.
      I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
    I_FCAT-FIELDNAME = 'KUNNR'.
    I_FCAT-HOTSPOT   = 'X'.
    I_FCAT-OUTPUTLEN = '000013'.
      I_FCAT-SELTEXT_L = 'Customer Code'.
      I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
      I_FCAT-FIELDNAME = 'NAME'.
    I_FCAT-HOTSPOT   = 'X'.
      I_FCAT-OUTPUTLEN = '000015'.
      I_FCAT-SELTEXT_L = 'Customer Name'.
      I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
    I_FCAT-FIELDNAME = 'GJAHR'.
    I_FCAT-HOTSPOT   = 'X'.
      I_FCAT-OUTPUTLEN = '000005'.
      I_FCAT-SELTEXT_L = 'Fscl.Yr'.
      I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
      I_FCAT-FIELDNAME = 'KOSTL'.
    I_FCAT-HOTSPOT   = 'X'.
      I_FCAT-OUTPUTLEN = '000008'.
      I_FCAT-SELTEXT_L = 'Cost Center'.
      I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
      I_FCAT-FIELDNAME = 'XBLNR'.
    I_FCAT-HOTSPOT   = 'X'.
    I_FCAT-OUTPUTLEN = '000016'.
      I_FCAT-SELTEXT_L = 'Invoice No'.
    I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
       I_FCAT-FIELDNAME = 'SGTXT'.
    I_FCAT-HOTSPOT   = 'X'.
      I_FCAT-OUTPUTLEN = '000015'.
      I_FCAT-SELTEXT_L = 'Item Text'.
    I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
      I_FCAT-FIELDNAME = 'BUDAT'.
    I_FCAT-OUTPUTLEN = '000015'.
      I_FCAT-SELTEXT_L = 'Posting Date'.
    I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
      I_FCAT-FIELDNAME = 'MWSKZ'.
    I_FCAT-HOTSPOT   = 'X'.
    I_FCAT-OUTPUTLEN = '0000010'.
      I_FCAT-SELTEXT_L = 'Tax Code'.
    I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
      I_FCAT-FIELDNAME = 'TAXTXT'.
    I_FCAT-HOTSPOT   = 'X'.
      I_FCAT-OUTPUTLEN = '0000015'.
      I_FCAT-SELTEXT_L = 'Tax Description'.
    I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
    I_FCAT-FIELDNAME = 'HKONT'.
    I_FCAT-HOTSPOT   = 'X'.
    I_FCAT-OUTPUTLEN = '000013'.
      I_FCAT-SELTEXT_L = 'G/L Account'.
    I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
      I_FCAT-FIELDNAME = 'WRBTR'.
    I_FCAT-OUTPUTLEN = '000018'.
      I_FCAT-SELTEXT_L = 'Net Amount'.
       I_FCAT-cfieldname    = 'PSWSL'.
      I_FCAT-DO_SUM = 'X'.
      I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
    I_FCAT-FIELDNAME = 'HKONT2'.
    I_FCAT-HOTSPOT   = 'X'.
    I_FCAT-OUTPUTLEN = '000013'.
      I_FCAT-SELTEXT_L = 'Tax G/L No.'.
    I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
      I_FCAT-FIELDNAME = 'WRBTR2'.
    I_FCAT-OUTPUTLEN = '000018'.
      I_FCAT-SELTEXT_L = 'Tax Amount'.
       I_FCAT-cfieldname    = 'PSWSL'.
      I_FCAT-DO_SUM = 'X'.
      I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
    I_FCAT-FIELDNAME = 'HKONT1'.
    I_FCAT-HOTSPOT   = 'X'.
    I_FCAT-OUTPUTLEN = '000013'.
      I_FCAT-SELTEXT_L = 'Freight G/L No'.
    I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
      I_FCAT-FIELDNAME = 'WRBTR1'.
    I_FCAT-OUTPUTLEN = '000018'.
      I_FCAT-SELTEXT_L = 'Freight Amount'.
       I_FCAT-cfieldname    = 'PSWSL'.
      I_FCAT-DO_SUM = 'X'.
      I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
      I_FCAT-FIELDNAME = 'GROSS'.
    I_FCAT-OUTPUTLEN = '000018'.
      I_FCAT-SELTEXT_L = 'Gross Amount'.
      I_FCAT-DO_SUM = 'X'.
       I_FCAT-cfieldname    = 'PSWSL'.
      I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
      I_FCAT-FIELDNAME = 'PSWSL'.
    I_FCAT-OUTPUTLEN = '000018'.
    I_FCAT-OUTPUTLEN = '000004'.
      I_FCAT-SELTEXT_L = 'Curr.'.
      I_FCAT-DO_SUM = 'X'.
      I_FCAT-FIX_COLUMN = 'X'.
      APPEND I_FCAT.
      CLEAR  I_FCAT.
    LS_SORT-UP = 'X'.
      LS_SORT-FIELDNAME = 'BELNR'.
        APPEND LS_SORT TO I_SORT.
        CLEAR LS_SORT.
    LAYOUT-ZEBRA = 'X'.
    ENDFORM.

Maybe you are looking for