Dynamic % Participation

Guys,
We have a product hierarchy as follows:
Product Total
Product Division Group
Product Dvision
Product Dept
etc.....
What we need to do is calculate a % of the product totals. Product totals is split in to Merchandise Product and Non Merchandise Product. This means that the calculation will be:
N / Merchandise Product.
The later is easily obtained by a filter. The former (N) could be any merchandise product selected from the division group, division etc. This is the difficult bit. (We have used case statements and filters to do something similar for other dimensions but the product dimension is fairly fluid so we can't do that in this case.)
Is there any way of doing this in the RPD?
You can do this in a pivot but we then to calculate a variance to forecast for this. When you add a calculated item to the pivot to calculate the variance it does not do correctly. It calculates a variance based on the original cash values.
Any help will be greatly appreciated,
Jim.

The answer to this one is to create measures at each level of the product hierarchy and create participation measures based on them. Many thank to Gary in our office for helping with this one,
Jim.

Similar Messages

  • Issue in implementing Dynamic participant chooser process Step

    I am facing issue in implementing Participant chooser process Step.
    I want to create dynamic Participant chooser process Step, I have implemented 'ParticipantStepChooser' class and overwrote 'getParticipant' method. But this process did not appear in Dynamic participant chooser dropdown in CQ5.6 environment.
    I deployed same code in CQ5.5 and process appeared in Dynamic participant chooser dropdown.
    This is the sample code which I have used:
    @Component(immediate = true, metatype = true, label = "DMP Config Service123")
    @Service
    @Properties({
            @Property(name = Constants.SERVICE_DESCRIPTION, value = "A sample implementation of a dynamic participant chooser.", propertyPrivate=true),
            @Property(name = Constants.SERVICE_VENDOR, value = "Adobe", propertyPrivate=true),
            @Property(name = ParticipantStepChooser.SERVICE_PROPERTY_LABEL, value = "******** Hello ********", propertyPrivate=true),
            @Property(name = "immediate" , value = "true", propertyPrivate=true)
    public class MyDynamicParticipant implements ParticipantStepChooser {
        private static final String TYPE_JCR_PATH = "JCR_PATH";
        @Activate
    void activate(ComponentContext context) {
      LoggerUtil.infoLog(this.getClass(), " ");
        public String getParticipant(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap args) throws WorkflowException {
      LoggerUtil.infoLog(this.getClass(), "inside getParticipant method{} ");
            WorkflowData workflowData = workItem.getWorkflowData();
            if (workflowData.getPayloadType().equals(TYPE_JCR_PATH)) {
    String path = workflowData.getPayload().toString();
    String pathFromArgument = args.get("PROCESS_ARGS", String.class);
    if (pathFromArgument != null && path.startsWith(pathFromArgument)) {
    return "admin";
            return "administrators";

    Make sure to change your imports in 5.6 to use granite api. Please change from [1] to [2].
    [1]
    import com.day.cq.workflow.WorkflowException;
    import com.day.cq.workflow.WorkflowSession;
    import com.day.cq.workflow.exec.ParticipantStepChooser;
    import com.day.cq.workflow.exec.WorkItem;
    import com.day.cq.workflow.exec.WorkflowData;
    import com.day.cq.workflow.metadata.MetaDataMap;
    [2]
    import com.adobe.granite.workflow.WorkflowException;
    import com.adobe.granite.workflow.WorkflowSession;
    import com.adobe.granite.workflow.exec.ParticipantStepChooser;
    import com.adobe.granite.workflow.exec.WorkItem;
    import com.adobe.granite.workflow.metadata.MetaDataMap;

  • Error while creating concurrent workflow instances with dynamic participant

    Hi All,
    I have a workflow which has 3 interactive activites. The second interactive activity has requires approval of atleast 3 users to proceed. The participants are also not known in advance and are created dynamically by creating the directory session. The workflow is instantiated using an external trigger. The approval for interactive activities is also provided by an external trigger (API call).
    Now, there is a scenario where i have 1000 requests coming in to ALBPM and workflow instance should be created for each of them. But only one instance is created and for the rest i get the following exception. This also happens with just 2 requests. I also tried calling the API in a synchronized way but didnt help.
    Is anybody aware why is this error encountered anf how it can be resolved?
    java.lang.IllegalStateException: Cannot set the directory Connector Service while connector service is started
    at fuego.connector.CompositeConnectorService.setDirectoryConnectorService(CompositeConnectorService.java:97)
    at fuego.connector.CompositeConnectorService.restartDirectoryConnectorService(CompositeConnectorService.java:52)
    at fuego.directory.DirectoryConfigurationManager.loadDirectoryConfiguration(DirectoryConfigurationManager.java:265)
    at fuego.directory.DirectoryConfigurationManager.getDirectoryConfiguration(DirectoryConfigurationManager.java:217)
    at fuego.directory.DirectoryConfigurationManager.getDirectoryConfigType(DirectoryConfigurationManager.java:199)
    at fuego.directory.provider.Factory.getDirectoryFactory(Factory.java:214)
    at fuego.directory.Directory.fillPassport(Directory.java:122)
    at fuego.directory.DirectoryPassport.fillPassport(DirectoryPassport.java:274)

    Hi Dan,
    Thanks for replying and giving attention. I have the following scenario :-
    1. I am getting a list of identifiers(some number) from a third party application along with the users/participants who are liable to approve the workflow instance.
    2. I create a workflow instance using this identifier through PAPI using process service session and also create the user/participant through PAPI by using the following code. Please note that i dont create participant in ALBPM instead i do it programatically in java using the PAPI :-
    DirectorySession directorysession = null;
    if (userVO != null && userVO.getUserId() != null && !userVO.getUserId().trim().equals(""))
    +{+
    +     directorysession = this.createFDISession();+
    +     List<RoleAssignment> roleAssignmentList = new ArrayList<RoleAssignment>();+
    +     try {+
    DirOrganizationalRole[] dirOrganizationalRoleArray = DirOrganizationalRole.fetchAll(directorysession);
    for(int i=0; dirOrganizationalRoleArray!=null && i<dirOrganizationalRoleArray.length; i+) {+
    +DirOrganizationalRole role = dirOrganizationalRoleArray;+
    +}+
    int permissions = -1;
    permissions
    += 0 |+
    DirHumanParticipant.getPermissionValue("X") |
    DirHumanParticipant.getPermissionValue("R") |
    DirHumanParticipant.getPermissionValue("S") |
    DirHumanParticipant.getPermissionValue("A") |
    DirHumanParticipant.getPermissionValue("D") |
    DirHumanParticipant.getPermissionValue("E") |
    +0;+
    +String[] whichRoles = new String[]{+
    +"Approver",+
    +"Requestor",+
    +};+
    +DirHumanParticipant.RoleAssignment[] roleAssignments = new DirHumanParticipant.RoleAssignment[whichRoles.length];+
    for(int i=0; i<whichRoles.length; i+) {+
    +roleAssignments[i] = new DirHumanParticipant.RoleAssignment(whichRoles[i], permissions, DirOrganizationalRole.fetch(directorysession, whichRoles[i]).getIn());+
    +}+
    +     String organizationUnit = configuration.getProperty("ORGANIZATION_UNIT");//fuegoFileProperties.getProperty(BVIDConstants.FUEGO_CONNECTIVITY_KEY_ORGANIZATION_UNIT);+
    +     String newUserPwd = configuration.getProperty("FUEGO_FDI_NEW_USER_PASSWORD");//fuegoFileProperties.getProperty(BVIDConstants.FUEGO_CONNECTIVITY_KEY_FDI_PWD);+
    +     DirOrganizationalUnit orgUnit = DirOrganizationalUnit.fetch(directorysession,organizationUnit);+
    +     DirHumanParticipant user = DirHumanParticipant.create(directorysession, userVO.getUserId(), userVO.getFirstName(), userVO.getLastName(),+
    +                              userVO.getFirstName(), userVO.getEmail(), userVO.getPhone(), "",+
    +                              newUserPwd, orgUnit,roleAssignments, true);+
    +     user.update();+
    +     }+
    +     finally+
    +     {+
    +               log.info("diconnecting the directory session created for creating participant");+
    +               directorysession.disconnect();+
    +     }+
    +}+
    3. The workflow instance then waits at interactive activity to get the next trigger with the same identifier to move the workflow ahead.
    4. Now the case is that i can get 1000 such identifiers at a time in a file which i ll read for which i need to create 1000 workflow instances parallely. During this process i get the following exception : -
    java.lang.IllegalStateException: Cannot set the directory Connector Service while connector service is started
    at fuego.connector.CompositeConnectorService.setDirectoryConnectorService(CompositeConnectorService.java:97)
    at fuego.connector.CompositeConnectorService.restartDirectoryConnectorService(CompositeConnectorService.java:52)
    at fuego.directory.DirectoryConfigurationManager.loadDirectoryConfiguration(DirectoryConfigurationManager.java:265)
    at fuego.directory.DirectoryConfigurationManager.getDirectoryConfiguration(DirectoryConfigurationManager.java:217)
    at fuego.directory.DirectoryConfigurationManager.getDirectoryConfigType(DirectoryConfigurationManager.java:199)
    at fuego.directory.provider.Factory.getDirectoryFactory(Factory.java:214)
    at fuego.directory.Directory.fillPassport(Directory.java:122)
    at fuego.directory.DirectoryPassport.fillPassport(DirectoryPassport.java:274)
    Please let me know if you need any more information. awaiting your help
    Thanks,
    Anand

  • Dynamic participant block in Human task flow

    Hi All,
    I am working on human task flow and got stopped on below use case.
    I have two participant block let say A and B. I want to assign participant A depends on flat inside task flow parameter. If Flag is Yes, then it should assign to A and on approval of A it should complete the task flow. But if Flag is NO, then it should first assign to B, on approval from B, it should again assign to A and after that it should complete the task flow.
    I tried to use dynamic role assignment but there i am not able to define above use case. Dynamic rule is saying you can assign A or B depends on some rule(task flow parameter) but my requirement is little different.
    If Flag is Yes,
    - assign to A -> on approval -> complete the task flow.
    If Flag is No
    - Assign to B -> on approval from B -> assign to A -> on approval from A -> complete the task flow.
    I want to build this logic inside single human task flow.
    Please help.
    -Sunil

    Hi Zaloa,
    Can you pls try this.This should work.
    1. Go to Edit Task Definition page and add a Parameter of type string(default).
    2. Now come to the human task dialog( the one you get on double clicking the human task activity) and add a value to the parametr you just added(string)using the search light .This value should be the variable containing the value of the asssigne which you want to add dynamically.
    3.Now again go to the Edit Task Definition page and select the Assignment policy and select the expression path builder.
    4. You should be able to see the parameter you just added under task:payload. select this . now your assigne is dynamically added.
    Pls let me know if you need further details. Hope this helps.
    Thnks
    Message was edited by:
    soaUser

  • Email Notification - Dynamic Participant Step - workflows

    Hi,
    I did not found Email notification for "Dynamic partcipant step" workflow step.
    Can any one help me where i need do changes for sending email using default or custom template to a dynamic user.
    Thanks
    Ravindra

    I can suggest you two things
    1. copy "/libs/cq/workflow/components/model/participant/cq:editConfig/cq:dropTargets" inside "/libs/cq/workflow/components/model/dynamic_participant/cq:editConfig"  and make modification to "cq:dropTargets/participant" and "cq:dropTargets/participant/parameters" by taking reference to "libs/cq/workflow/components/model/dynamic_participant/tab_participant_chooser/items/choo ser" This will help to setup the participant information to workitem metadata collection object (set it locally). Now check if it works. if not and if possible to make changes to property name from "DYNAMIC_PARTICIPANT" to just "PARTICIPANT" and again check (may be it takes only "PARTICIPANT" property from metadata).
    Also check error.log for any error. if found then post us.
    2. Verify your model structure at "/etc/workflow/models" and instances "/etc/workflow/instances" to cross check if everything looks good as expected.
    I think for manual steps the standard workflow classes takes care of notifications based on supplied metadata information.

  • Dynamic Dialog Praticipant step

    Hello experts,
               The OOTB cq comes with a "dialog participant step" and "dynamic participant step". I am looking for "dynamic dialog participant step". Any ideas of how to implement it ?
    Rama.

    I tried to customize this new component by combining the functionality of Dynamic Participant and Dialog Participant. I was able to customize the dialog (which shows up when I drag and drop the customized dynamic Dialog Participant Step) to refer to a dialog path ( as is OOTB Participant Step) and choose which  script to resolve the dynamic participant step. But at the run time had this issue where it was not assigning to the right group though the script returns correct value. I dont see any errors. But the major issue was I could not see the custom dialog. So took a new approch to resolve this.
    1. Create a new model
    2. Drag and drop the dialog Participant step and DONOT choose the group. Choose title and description, and also choose the custom dialog.
    3. Create a new java process step which would assign the a value to the property called PARTIPANT to the next step (combination of workflow transition objects and routes objects) in the workflow ( which in this case the dialog Participant).
    4. Code the logic in such a way that it returns the correct user group.
    5. Drag and drop a java process step on to the model prioor to the dialog Participant Step and choose the newly created java process.
    6. execute the workflow.
    7. Once the java process executes it would assign to the right group for the dialog Participant (  which we did not choose while we modelled it - Step 2)
    Hope this helps.
    Rama.

  • Attachments and notes made to a copy of an instance

    We want to use a split N to make copies of an instance to go to 3 different roles at the same time.
    When one person in role 1 attaches a file or creates a note will the other copies be able to see this as well?

    When you add a note or attachment to one copy in a Split in 10g, the other copies automatically can see and edit the note or attachment. The reason is because the notes and attachments are actually added directly to the original instance and not the copy generated by the Split.
    You can try this out on your own by downloading and importing the project on http://www.4shared.com/file/119123762/849e0e1a/SplitWithAttachmentsAndNotes.html
    Note that this behavior works the same for a Split, a Multiple (Split-N in previous releases) and an Or Split. When the original instance leaves the Join, the original instance carries the notes and attachments added.
    If you're curious how copies created by Splits, Multiples and Or Splits relate to the original instance, read the last post on the thread to Multiple split with dynamic participant assignment
    Dan

  • Override Default Page Activation Workflow

    Hello,
    I am trying to override the default handling of Authors requesting page activations.  By default, an Author that doesn’t have Replication privileges has the request sent to the Admin group.  We’ve created several workflows specifically for different groups since each has their own approval flow:
    CQ User Group                 CQ Workflow
    Consumer >>                     Consumer Approval Workflow
    eCRM >>                             Consumer Approval Workflow
    Business >>                        Business Approval Workflow
    I realize the Author could select the workflow from the Sidekick, but I need ot ensure the correct workflow is assigned if they simply click “Activate” from the Sidekick or the Site Admin (Websites) page.  What’s the best way to accomplish this – writing some sort of servlet, using the Dynamic Participant Step, something else?  The logic would be fairly straight forward – on activation request, check user group and assign page to pre-defined workflow and initiate.

    You can set this in version 5.1.
    Thanks,
    Michael
    Michael Girdley
    BEA Systems Inc
    "anil" <[email protected]> wrote in message
    news:399aba85$[email protected]..
    How we can override default error page (404) in WebLogic ver 4.5.1 ? Wehave already set property weblogic.httpd.errorPage.404=URL in
    weblogic.properties file , but it is not working with 4.5.1
    >
    We would like to have solution in properties setting, because changing thecode is not possible
    >
    Thanks in Advance
    anil

  • OIM & OAM's identity system?

    Hi all,
    1.I want to know the main differences between OIM & OAM's identity system.
    2.OAM includes identity system & access system,can i use OAM's identity system only without installing access system to handle user identity management ?
    thanks.need r help.

    Yes. You can install only OAM Identity System to do User/Group/Org Identity Management, without installing Access System. (Although Oracle always recommends using OIM for User Identity Management)
    The difference between OIM and OAM is that OIM is used for User Provisioning, Reconciliation and Identity Management across multiple data stores, while OAM does User Provisioning and Identity management on a single data store.
    From my experience, OAM Identity System takes an edge over OIM in the following ways:
    1. Attribute Access Control: This function lets you specify permissions that determine who can read and modify the values for each LDAP attribute. It also lets you create a list of users or groups to be notified when an attribute is changed. The audience can be defined using a role, rule(ldap filter), person or group definition.
    2. Set Searchbase: The searchbase determines the part of the directory tree that is available to a user during a search. You must set a searchbase for each structural object class configured for the Identity System before a user can view its entries. You can set multiple searchbases for each structural object class. When you set a searchbase, you determine who can search what (an object class, at a particular level of the directory tree), optionally using a search filter. The audience can be defined using a role, rule(ldap filter), person or group definition.
    3. Delegated Administration: Delegating administration allows the Master Administrator and Master Identity Administrator to delegate their responsibilities to other, more local administrators. This is particularly useful in large organizations, where it may be necessary to administer thousands or millions of users. By doing this, you determine what rights you want to grant to another user.
    4. Easy-to-use workflows: The workflow applet lets you create different kinds of workflows in minutes. Following are the interesting features in OAM workflows:
    - Email notification: On execution of each workflow step, an email notification can be sent to the participants of the next step.
    - Dynamic Participants: Instead of specifying static participants when you create a workflow, you can have a workflow plug-in or application choose dynamic participants according to runtime conditions.
    - Out-Of-Office Participants: If a static or dynamic participant is going to be out of the office or otherwise unable to process workflow tickets, he or she can set an Out of Office flag in his or her user profile so that all incoming tickets are redirected to a surrogate participant for as long as the flag remains activated.
    - Escalation Participant: If the participants receiving a given workflow ticket fail to process it within a specified interval, that ticket can be sent to an escalation participant, who assumes full responsibility for the ticket.
    5. OAM deployment is usually faster than an OIM deployment.
    One of the disadvantages of OAM Identity System is that it can manage identities in a single (LDAP only) data store. This can be overcome by the use of Oracle Virtual Directory on top of all the identity data stores being used in the enterprise.
    Let me know if you have any more questions.
    -shetty2k

  • Dynamic Dialog in a Dialog Participant Step for Workflow

    Hello All,
    I am trying to create a Dynamic Dialog in the dialog participant step for a workflow.
    so when a user has the Dialog participant step opened up, if they select from a drop down, it will make another textfield hide/show.
    In a component dialog I can do something like
    var comment = this.find('name', './jrc:content/customComment')[0] to find the field to be shown/hidden.
    however when I run this inside a Dialog Participant step, the result is undefined.
    Any Sugguestion on how to approach this ?
    I am using a listener on the dropdown widget/attribute

    Hello,
    The find() method will not help you because it searches the property based on configured value which you can not pass in your scenario. If you dont have any constraint with your hide/show field then best way it to configured it with a property "id" (String) and give it some unique value which has not been used by any component in this dialog and then use below method to find out the component.
    this.getComponent(id)
    when you pass the "id" value the method will return that component and then you can show/hide it.
    I have used this approach many times which is easy and fast to find out the component in any container.
    Let me know if you face any issue.
    Thanks,
    Pawan

  • Sending Instance dynamically to multiple participant.

    I have a situation where the count of receiving participants will very from 1 to 5.
    this.participant.next helps in sending instance dyanmically to a participant.
    My question was, How do I send the instance dynamically to multiple partipants.
    Please help

    First thing that comes to mind is to utilize a SPLIT-N JOIN.
    Put 1) an AUTOMATIC, and 2) the activity that needs to have multiple participants in between the SPLIT-N and the JOIN. In the code for the SPLIT, iterate over your variable that contains the counter of participants (intParticipantCount) and do the following:
    1) set another variable for the desired participant (varParticipant)
    2) clone the instance for as many particpants as you have.
    In the code of the automatic, put the "participant.next" code and use your varParticipant
    So if your process looked like the list below, and Activity 2 was the activity that needed to have a dynamic number of participants:
    1) begin
    2) activity 1
    3) activity 2 (has dynamic # of participants)
    4) activity 3
    5) end
    It would now look like:
    1) begin
    2) activity 1
    3) SPLIT-N
    4) Automatic (to set next participant)
    5) activity 2
    6) JOIN
    4) activity 3
    5) end
    All of this assumes that Activity 2 needs to be completed by EACH user. If this is not the case...for example if you want to assign Activity 2 to a dynamic list of users (1-5) but you only want 1 user of the dynamic list to complete the activity, then I have no proven or tested suggestion, but you could perhaps look into seeing if you can 1) create parametric roles at runtime and 2)modify the members of the parametric role during runtime. if this is possible, then at runtime you would create a new parametric role, add the users to it, and set the parametric value. But this approach is all theoretical. Not sure if you can actually do that.

  • Getting Roles & Participants Dynamically in BPM

    Hi,
    I am trying to get the roles and particiants from external resources such as LDAP. Is there aby way to connect BPM to LDAP and retrieve the users & roles.
    Thanks,
    Sanjay
    Edited by: Sanjay_21 on Aug 24, 2009 10:47 AM

    Sanjay,
    You can do this in BPM Enterprise. You have to configure a "hybrid" directory. The default is to store all the information of your organization in a database. With a hybrid configuration this will come from an LDAP.
    You can read a bit about it in the docs:
    http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/admin_guide/modules/dir_service/c_Hybrid_Directory_Service.html
    http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/admin_guide/modules/dir_service/t_Config_Hybrid_Dir_Service.html
    Inside the directory $BPM_HOME/conf you can find some configuration files for integrating with an LDAP:
    generic_sunone.conf
    generic_oracleldap.conf
    Here you can specify how to find the participants and groups in your LDAP.
    And then in your code you would search for them in the same way as always:
    Participant.find("p1")
    Role.find("r1")

  • Dynamic creation of participants using PAPI WS

    Hi ,
    Can anyone tell me how to create participants in the studio using the PAPI WS ?
    Thanks in advance!!!
    Regards,
    Shiny

    Hi Capgemini,
    You BIRT questions are welcome at http://www.birt-exchange.com. There are forums specifically for BIRT.
    To answer your questions, you can use a scripted data source which allows you to call Java objects to fill the data.
    There are a couple of examples already posted there:
    One uses the Java API's only:
    http://www.birt-exchange.com/modules/wfdownloads/singlefile.php?cid=2&lid=156
    and one uses Javascript inside the report design:
    http://www.birt-exchange.com/modules/wfdownloads/singlefile.php?cid=2&lid=117
    Virgil

  • LSO_PSV2   -   Dynamic Course Menu  -  Participants Order

    Hi,
    when people register for a course
    SAP puts people who register the same day, by order of his surname.
    How is it possible?
    should be sorted in order of registration
    thanks in advance
    sony

    You can change the sort order of your dynamic menu:
    CrtShiftF5   >  Dynamic Menus  > Sort Order   > Group Course Type/Name: C Name   >    Attendees: D Booking Date
    I hope it helps.

  • Specifying participant names dynamically

    I have a new requirement like this.pariticipant p1 enters the data in task list application. based on that data I have to assign the task to another user. please can anybody tell me how to do this?
    Thanks

    This has been answered here:
    http://social.technet.microsoft.com/Forums/scriptcenter/en-US/e2f99256-7f33-48dd-803d-02c3483dc3b1/specifying-multiple-names-in-a-windows-feature-using-dsc?forum=ITCG&prof=required

Maybe you are looking for

  • Safari 5 - Lost Reopen all windows from last session

    Do you know, how to make "Reopen all windows from last session" work in Safari 5? I dont have this option in History- http://tinypic.com/r/2m6lwfb/6

  • How do I Transfer Music from My Ipod to my Lap top

    I had a Lap Top and My company give a brand new Laptop... i have all my songs in my iPod.... How can I Import all the songs from my iPod to my iTunes?? is not easy, and copy-paste or drag the song from iPod to my library in iTunes aren´t working eith

  • How to delete sales order ?

    I want to know that how to delete the sales order ?we are doing planning run for repitative manufacturing but some sales order are taking part in MRP run so how we can restrict ?please provide the solution for the same.

  • Mystery Virtual memory/disk usage

    I have installed SL on a Mac Mini and MBP with no problem. But now I have installed it on a Macbook and something is eating the disk and/or virtual memory. After a fresh reboot I have 120G free disk space. This steadily reduces until the OS starts po

  • TitledBorder is not updated visually right away

    Hello, I have created TitledBorders that are aware of the color they should be painted with. By subclassing TitledBorder, I created a new border which registers itself as an observer to be notified when the color should change. Upon receiving a notif