Defining Approvers(Managers) in ERM

Dear All,
I am designing a workflow for adding tcode/authorization object. The workflow is as follows:-
Requestor>Security>Manager-->Provisioning
In CUP:
Requestor --> Security Admin.( now security admin will the hold the request in CUP)
In ERM:
Security Admin ( Requestor) ---> Manager (ERM request in CUP)
After the manager approves ERM request and the Security Admin generates the role he (Security Admin) will remove the HOLD request in CUP and approve the same and close it.
My question-  how can we define an approver like a manager or an HOD in ERM like we do it in CUP. I know its illogical to have a manager/HOD for roles but i dont have much choice as the HOD/manager has to feature in the workflow. How can classify roles in ERM as to who will the HOD for the same based on available attributes in ERM?
Also how do we separately define the Role Owner and the Approver in ERM?
Edited by: celestemay17 on Jan 7, 2011 1:31 PM

>
> Also how do we separately define the Role Owner and the Approver in ERM?
>
In ERM when you define a role, in approvers tab you can set the role owner as well.
Thanks,
Chinmaya
Edited by: chinmaya prakash on Jan 7, 2011 5:01 PM

Similar Messages

  • Shopping cart Converted to Purchase order directly.

    Hello Experts,
           I have a question on what settings to check if the shopping cart created in a system is creating Purchase order directly as Follow-on document. The scenario we are using is SRM 5.0 (Standalone) for Strategic procurement. I checked the BBP_DOC_SAVE, BBP_DOC_CHANGE BADI's but there is no such coding there....any settings in SPRO that is enabling this thing to happen ???
    Please let me know about it ASAP. Would definitely reward for useful answers.
    Thanks,
    Rajeshree

    Hi
    <b>Couple of reasons can be possible for this -></b>
    1) Workflow is not getting triggered properly. Check workflow configuartion. Are you using standard or customer workflow ?
    <u>Seems to me there are no Approvers determined for the particular Product category and Purchase Group combinations, which in turn determines the Approvers (Managers) in this case.</u>
    2) Incase the shopping cart dat is complete, and the SRM SPRO system settings are defined to create a Purchase order. Then directly R/3 PO gets created.
    3) Check out for all the customer BADI Implementations in SE19 (starting with either Y or Z). Which all are active in this case ? What all code they have ?
    4) check out for BADIs especially - BBP_CREATE_PO_BACK
                                                        BBP_CREATE_PO_BACK_NEW 
                                                        BBP_TARGET_OBJECTS
                                                        BBP_TARGET_OBJTYPE
    5)  <b>Check SPRO Settings ->
    Here is the path</b>
    <u>Supplier Relationship Management -> SRM Server -> Cross-application basic settings -> Define Objects in Backend System (Purch. Reqs, Reservations, Purch. Orders</u>
    <u>Define Objects in Backend System (Purch. Reqs, Reservations, Purch. Orders)</u>
    You perform this step only if you create your Materials Management documents in a backend system.
    You specify the documents that are to be created in the backend system for a requirement coverage request.
    The following documents can be created:
    Purchase requisition
    Purchase order
    Reservation
    You enter a product category (such as office supplies, or hardware) and/or an organizational unit. The organizational unit contains the purchasing group that is responsible for procuring products in this category.
    You can enter the product category generically, such as Office*.
    Note
    The backend system is determined  using the product category in the requirement coverage request item. The item also contains the organizatinal unit.
    You can use the Business Add-In BBP_TARGET_OBJTYPE if you wish to implement a different logic for creating documents in the backend system.
    Example
    If purchasing group 01 wants to procure materials from the category Raw Materials, a reservation is to be created every time.
    If materials in the category PC are to be procured, a purchase requisition is to be created every time.
    Activities
    1. Enter the organizational unit and/or the category.
    2. Enter a source system.
    3. Choose the procurement type.
    Reservation if stock is available, otherwise external procurement
    The system creates a reservation if the material is subject to inventory management and sufficient stock quantity is available in the warehouse on the requested date.
    Always reservation for materials subject to inventory management
    The system creates a reservation if the material is subject to inventory management, irrespective of whether stock is available.
    Always external procurement
    The system does not create a reservation, but always procures the item externally. In this case, you specify the type of external procurement.
    The following options are significant if the system cannot create a reservation (for example, if there is no stock available or for a non-stock item) or the system must not create a reservation (choose Always external procurement).
    Purchase order if item data complete, otherwise purchase requisition
    The system always tries to create a purchase order. If the item data is incomplete (for example, the vendor or price is not known), the system creates a purchase requisition from the item.
    -> Always purchase requisition
    The system always creates a purchase requisition.
    -> Always local purchase order
    The system always creates a local purchase order.
    Hope this will help.
    Please reward suitable points, incase it suits your requirements.
    Regards
    - Atul

  • GRC 5.3 CUP SP16 - User info not loading from LDAP into CUP

    Hello,
    We have multiple LDAPS that we needed to connect to our CUP system to authenticate the userids before a request can be created for them. And also to bring in Manager ID and manager email from LDAP as the first level approver for requests.
    My client hasn't maintained the actual LDAP userids, Manager and manager email fields correctly, so we utlized three other custom fields in LDAP and then did field mapping in CUP for those fields. But even when the connection to all the LDAPs is successful, there's no user information being pulled in from LDAP into CUP.  I noticed that when I use our backend SAP QA system as 'User Data Source' while using multiple LDAPS for 'User Detail Source Data' , it only reads data from SAP QA system SU01 area and even when I'm trying to create requests, no Manager info is being pulled from LDAPS for that user id. 
    SAP does not allow the use of multiple LDAPS for the configuration-->User Data Source , top option.  So, if a client has userids in multiple systems, it can only read from one data source.  But even when I temporarily assigned one active directory LDAP to the 'user data source' option, it stated, no records found. So, something is up that no data is being pulled from LDAPs even when the connection to those systems is successful. I just asked our AD guy to temporarily assign domain admin rights to that LDAP connection ID to see if it's access issue, and still I am not getting any LDAP data to read into GRC CUP.
    Anyone else has had this issue? Is there especial access that the LDAP connection id needs access in LDAP to be able to retreive data into GRC? Is there any jobs that need to be run to read LDAP data. I thought it should be live as the system is connected to LDAPs. I don't understand if the connection is successful, why the user info is not being pulled from there and even after the LDAP custom field mapping is done, those field values are not showing up on requests.
    We need the following to happen:
    1). Authenticate the custom userid field in LDAPs to ensure this user exist as an employee b4 request can be created for the user. For this I have configured the multiple LDAPS for the 'Authentication'. But it doesn't seem to confirm that option when creating a request for a user.
    2). The user details info source should bring in the custom manager id and manager email into the request to send the first level of approval via workflow to that manager. Since SAP doesn't give the option to define approvers per user group values in CUP, we had to actually map all the User Owner approvers this way since their direct managers are not aware of  what to request as the User owner approvers per user group are.  So, we added custom fields for Manager id and Manager EMail into LDAP to be ready automatically into the request when reading user id while creating request.
    I will greatly appreciate anyone's help on how they got the LDAP field values to be read into GRC CUP for request processing and what type of encripted access can a LDAP connection id have without assigning it complete domain admin rights on an open port 389 for LDAP and GRC CUP connection.
    Thanks and Regards,
    Alley

    Hi Alley,
    1). Authenticate the custom userid field in LDAPs to ensure this user exist as an employee b4 request can be created for the user. For this I have configured the multiple LDAPS for the 'Authentication'. But it doesn't seem to confirm that option when creating a request for a user.
    This is not possible. You can have only 1 LDAP. Why you want to authenticate the user in different sources?? CUP looks at only one user source, not many. The below wiki explains you the configuration part:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b089fb71-a3b7-2a10-64a2-8c77243b0664
    2). The user details info source should bring in the custom manager id and manager email into the request to send the first level of approval via workflow to that manager. Since SAP doesn't give the option to define approvers per user group values in CUP, we had to actually map all the User Owner approvers this way since their direct managers are not aware of what to request as the User owner approvers per user group are. So, we added custom fields for Manager id and Manager EMail into LDAP to be ready automatically into the request when reading user id while creating request.
    Based on user group is not possible. However, if you wish to maintain the Manager's Field, ensure that the CUP mapping is done correctly from the Configuration, Field Mapping, LDAP Mapping.
    While defining the workflow, take the approver determinator as Manager. This will route the request to the users manager. Also, ensure that LDAP is the source in all the confiuration areas in CUP.
    Check note 1228996 for more information.
    Hope this helps!!
    Regards,
    Raghu

  • Calling New Function Module from JAVA ISA b2b

    I need to call a new function module which accepts some parameters as input and
    returns some result parameters back as output.
    These returned value needs to be displayed on the JSP pages of ISA B2B applications.
    Can someone please guide me and provide code snippet on how to do this?
    Thanks in advance.
    Points will be awarded for all relevant and helpful answers.

    Stride,
    I did this on CRM ISA 4.0...  I used the dev and extension guide as a basis - I think the ISA 5.0 guide has the examples and tutorials in a separate document that can also be downloaded from service.sap.com.
    Here’s some info on how to do it although I can't guarantee this is the full solution or that it will work the same for ISA 5.0, and I will probably forget a lot of stuff as its been a few years since I did it!  I also can’t guarantee it is the correct way to do it – but it worked!  Basically, we built a link into the order overview page to display url’s to order tracking websites using an RFC on the backend CRM system.  Hope it helps anyway.
    1. Create RFC enabled function module in backend.
    2. Edit file backendobject-config.xml in folder project_root\b2b_z\WEB-INF\xcm\customer\modification:-
    [code] <backendobject
         xmlns:isa="com.sapmarkets.isa.core.config"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:xml="http://www.w3.org/XML/1998/namespace">
         <configs>
              <!-- customer changes in backendobject-config should be done here by extending/overwriting the base configuration-->
              <xi:include
                   href="$
    Template for backend object in customer projects
    Concrete implementation of a backend object
    This implemenation demonstrates how a backend object
    is used to communicate with the CRM system
    @see com.ao.isa.backend.boi.Z_AOFuncBackend#getOrderDeliveryTrackingData(java.lang.String)
    Interface used to communicate with a backend object
    The purpose of this interface is to hide backend implementation details
    from the business objects
    Returns a vector of Z_OrderDeliverTracking objects containing data to link
    to external delivery tracking websites
    @param orderNo The sales order document number
    @return A vector of order tracking objects
    @return
    @return
    @return
    @return
    @return
    @param string
    @param string
    @param string
    @param string
    @param string
    /modification/backendobject-config.xml#xpointer(backendobject/configs/*)"/>
              <!-- This is an example customer extension. A new Backend Object is registered in the framework using XCM extension mechanism. -->
              <!-- If you write customer extensions you should register your backend objects in the same way. -->
              <!-- Please make sure that you use the correct base configuration (e.g. crmdefault for CRM or r3default, r3pidefault for R/3) -->
              <config
                   isa:extends="../config[@id='crmdefault']">
                   <businessObject
                        type="Z_AO_Custom"
                        name="Z_AO_Custom"
                        className="com.ao.isa.backend.crm.Z_AOFuncCRM"
                        connectionFactoryName="JCO"
                        defaultConnectionName="ISAStateless"/>
              </config>
         </configs>
    </backendobject>
    [/code]
    File com.ao.isa.backend.crm.Z_AOFuncCRM.java looks like this :-
    [code] package com.ao.isa.backend.crm;
    //jco imports
    import java.util.Vector;
    import com.ao.isa.backend.boi.Z_AOFuncBackend;
    import com.ao.isa.businessobject.order.Z_OrderDeliveryTrackingItem;
    import com.sap.mw.jco.JCO;
    import com.sap.mw.jco.JCO.ParameterList;
    import com.sapmarkets.isa.core.eai.BackendException;
    import com.sapmarkets.isa.core.eai.sp.jco.BackendBusinessObjectBaseSAP;
    import com.sapmarkets.isa.core.logging.IsaLocation;
    public class Z_AOFuncCRM
         extends BackendBusinessObjectBaseSAP
         implements Z_AOFuncBackend
         // initialize logging
         private static IsaLocation log =
              IsaLocation.getInstance(Z_AOFuncCRM.class.getName());
         /* (non-Javadoc)
         public Vector getOrderDeliveryTrackingData(String orderNo)
              Vector urlData = new Vector();
              try
                   // get Java representation of function module
                   JCO.Function func =
                        getDefaultJCoConnection().getJCoFunction(
                             "Z_BAPI_CRM_ORDER_TRACKING_URLS");
                   // provide export parameters
                   ParameterList params = func.getImportParameterList();
                   params.setValue(orderNo, "ORDER_NO");
                   func.setExportParameterList(params);
                   // execute function
                   getDefaultJCoConnection().execute(func);
                   // get result table
                   JCO.Table table =
                        func.getTableParameterList().getTable("TRACKING_DATA");
                   int numRows = table.getNumRows();
                   for (int i = 0; i < numRows; i++)
                        // get row
                        table.setRow(i);
                        // create a new Z_orderdeliverytracking object
                        Z_OrderDeliveryTrackingItem trackItem =
                             new Z_OrderDeliveryTrackingItem(
                                  table.getString(0),
                                  table.getString(1),
                                  table.getString(2),
                                  table.getString(3),
                                  table.getString(4));
                        urlData.addElement(trackItem);
                        trackItem = new Z_OrderDeliveryTrackingItem();
                   return urlData;
              catch (BackendException bex)
                   // The following key has to be added to WEB-INF/classes/ISAResources.properties
                   // in order to see the exception correctly
                   log.config("ao.b2b.order.error.getOrderTrackingURLs", bex);
              return null;
    [/code]
    And file com.ao.isa.backend.boi.Z_AOFuncBackend.java looks like this:-
    [code] package com.ao.isa.backend.boi;
    //package java.ao.com.ao.isa.backend.boi;
    import java.util.Vector;
    import com.sapmarkets.isa.core.eai.sp.jco.JCoConnectionEventListener;
    public interface Z_AOFuncBackend
         public Vector getOrderDeliveryTrackingData(String orderNo);
    [/code]
    Whilst file com.ao.isa.businessobject.order.Z_OrderDeliveryTrackingItem.java looks like this:-
    [code]
    package com.ao.isa.businessobject.order;
    // Referenced classes of package com.sapmarkets.isa.businessobject.order:
    //            PaymentType
    public class Z_OrderDeliveryTrackingItem // extends SalesDocument implements OrderData
         private String deliveryDocNo;
         private String goodsIssuedDate;
         private String consignmentNo;
         private String status;
         private String url;
         public Z_OrderDeliveryTrackingItem()
         public Z_OrderDeliveryTrackingItem(
              String delDocNo,
              String GIDate,
              String consNo,
              String status,
              String url)
              this.setDeliveryDocNo(delDocNo);
              this.setGoodsIssuedDate(GIDate);
              this.setConsignmentNo(consNo);
              this.setStatus(status);
              this.setUrl(url);
         public String getConsignmentNo()
              return consignmentNo;
         public String getDeliveryDocNo()
              return deliveryDocNo;
         public String getGoodsIssuedDate()
              return goodsIssuedDate;
         public String getStatus()
              return status;
         public String getUrl()
              return url;
         public void setConsignmentNo(String string)
              consignmentNo = string;
         public void setDeliveryDocNo(String string)
              deliveryDocNo = string;
         public void setGoodsIssuedDate(String string)
              goodsIssuedDate = string;
         public void setStatus(String string)
              status = string;
         public void setUrl(String string)
              url = string;
    [/code]
    3. Edit file bom-config.xml in folder project_root\b2b_z\WEB-INF\xcm\customer\modification :-
    [code] <BusinessObjectManagers
         xmlns:isa="com.sapmarkets.isa.core.config"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:xml="http://www.w3.org/XML/1998/namespace">
         <!-- customer changes in bom-config should be done here by extending/overwriting the base configuration-->
         <xi:include
              href="$/modification/bom-config.xml#xpointer(BusinessObjectManagers/*)"/>
         <!-- This is an example Business Object Manager. It can act as template for customer written Business Object Managers -->
         <BusinessObjectManager
              name="Z_AO-BOM"
              className="com.ao.isa.businessobject.Z_AOBusinessObjectManager"
              />
    </BusinessObjectManagers>
    [/code]
    File com.ao.isa.businessobject.Z_AOBusinessObjectManager.java looks like this:-
    [code] package com.ao.isa.businessobject;
    // Internet Sales imports
    import com.sapmarkets.isa.core.businessobject.management.BOManager;
    import com.sapmarkets.isa.core.businessobject.management.DefaultBusinessObjectManager;
    import com.sapmarkets.isa.core.businessobject.BackendAware;
    Template for a custom BusinessObjectManager in customer projects
    public class Z_AOBusinessObjectManager
         extends DefaultBusinessObjectManager
         implements BOManager, BackendAware {
         // key used for the backend object in customer version of backendobject-config.xml
         public static final String CUSTOM_BOM = "Z_AO-BOM";
         // reference to backend object
         private Z_AOFunc mCustomBasket;
    constructor
         public Z_AOBusinessObjectManager() {
    Method is called by the framework before the session is invalidated.
    The implemenation of this method should free any allocated resources
         public void release() {
    Returns custom business object
         public Z_AOFunc getCustomBasket() {
              if (mCustomBasket == null) {
                   mCustomBasket = new Z_AOFunc();
                   assignBackendObjectManager(mCustomBasket);
              return mCustomBasket;
    [/code]
    And uses file com.ao.isa.businessobject.Z_AOFunc.java which looks like this:-
    [code]
    package com.ao.isa.businessobject;
    // Internet Sales imports
    import com.sapmarkets.isa.core.businessobject.BOBase;
    import com.sapmarkets.isa.core.businessobject.BackendAware;
    import com.sapmarkets.isa.core.eai.BackendObjectManager;
    import com.sapmarkets.isa.core.eai.BackendException;
    import com.sapmarkets.isa.core.logging.IsaLocation;
    // custom imports
    import com.ao.isa.backend.boi.Z_AOFuncBackend;
    import java.util.Vector;
    Template for business object in customer projects
    public class Z_AOFunc extends BOBase implements BackendAware
         // initialize logging
         private static IsaLocation log =
              IsaLocation.getInstance(Z_AOFunc.class.getName());
         private BackendObjectManager bem;
         private Z_AOFuncBackend backendAOBasket;
    Returns a reference to the backend object. The backend object
    is instantiated by the framework.
    @return a reference to the backend object
         private Z_AOFuncBackend getCustomBasketBackend()
              if (backendAOBasket == null)
                   //create new backend object
                   try
                        backendAOBasket =
                             (Z_AOFuncBackend) bem.createBackendBusinessObject(
                                  "Z_AO_Custom");
                        // the backend object is registered in customer version
                        // of backendobject-config.xml using the 'Z_AO_Custom' type
                   catch (BackendException bex)
                        // The following key has to be added to WEB-INF/classes/ISAResources.properties
                        // in order to see the exception correctly
                        log.config("ao.b2b.order.error.getOrderTrackingURLs", bex);
              return backendAOBasket;
    This method is needed when a business object has a corresponding
    backend object.
         public void setBackendObjectManager(BackendObjectManager bem)
              this.bem = bem;
    Returns a vector of url links for tracking
    @return vector of urls
         public Vector getOrderDeliveryTrackingData(String orderNo)
              // the call is delegated to the CRM aware backend object
              return getCustomBasketBackend().getOrderDeliveryTrackingData(orderNo);
    [/code]
    4. Edit file config.xml in folder project_root\b2b_z\WEB-INF to add custom actions (the section below is just the custom stuff added at the end of the file – the Z_orderTracking is the relevant one) :-
    [code] <!-- Begin of custom AO action definitions -->
         <action path="/b2b/Z_orderTracking" type="com.ao.isa.order.actions.Z_OrderTrackingAction">
              <forward name="success" path="/b2b/order/Z_orderTracking.jsp"/>
         </action>
         <action path="/catalog/Z_displaySVGPage" type="com.ao.isa.catalog.actions.Z_SVGPageAction">
              <forward name="success" path="/catalog/Z_SVG_fs.jsp"/>
         </action> [/code]
    Which points at Java file com.ao.isa.order.actions.Z_OrderTrackingAction.java which looks like this :-
    [code] package com.ao.isa.order.actions;
    // internet sales imports
    import com.sapmarkets.isa.core.BaseAction;
    import com.sapmarkets.isa.core.UserSessionData;
    // struts imports
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForm;
    // servlet imports
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletException;
    // Internet Sales imports
    import com.ao.isa.businessobject.Z_AOBusinessObjectManager;
    import java.util.Vector;
    This action acts as a template for customer extensions
    public class Z_OrderTrackingAction extends BaseAction
    This method is called by the ISA Framework when the
    action is executed
         public ActionForward doPerform(
              ActionMapping mapping,
              ActionForm form,
              HttpServletRequest request,
              HttpServletResponse response)
              throws ServletException
              // get user session data object
              UserSessionData userSessionData =
                   UserSessionData.getUserSessionData(request.getSession());
              // gettting custom BOM
              Z_AOBusinessObjectManager myBOM =
                   (Z_AOBusinessObjectManager) userSessionData.getBOM(
                        Z_AOBusinessObjectManager.CUSTOM_BOM);
              // get the order number being processed
              String orderDocNumber = request.getParameter("orderNo");
              // pass the order number back to the page
              request.setAttribute("orderNo", orderDocNumber);
              if (orderDocNumber != null)
                   // Get a vector of delivery tracking objects from lower layers (Business Object layer =>
                   // Business Logic Service Layer)
                   Vector trackingTable =
                        myBOM.getCustomBasket().getOrderDeliveryTrackingData(
                             orderDocNumber);
                   String error = "";
                   if (trackingTable != null)
                        if (trackingTable.size() == 0)
                             error = "true";
                        else
                             error = "false";
                   else
                        error = "true";
                   request.setAttribute("errorMessage", error);
                   request.setAttribute("trackingTable", trackingTable);
              return mapping.findForward("success");
    [/code]
    5. I added the call to the function module for page orderstatusdetail.jsp in folder project_root\b2b_z\b2b\order to display a custom page Z_orderTracking.jsp in the same folder.  To do this I added a link into the HTML to call a JavaScript function that passed the current order number to the /b2b/Z_orderTracking.do actionhandler mapped in the config.xml file.
    So, in summary!  Create an RFC; define business managers for it in the XML files; create a new Strut action and supporting Java class; create all the Java class’ for the managers.
    I hope this makes some sense!
    Gareth.

  • Auto-open 'Completed' Service ticket based on tracking text in email...

    When sending out e-mails we embed a so called tracking number into the end of the e-mail text saying something like:
    DO NOT DELETE ***
         Ticket No. [[1234567]]
    DO NOT DELETE ***
    This is pretty common, I believe, and how this is achieved is documented in a number of places.
    However, if a client responds to an old email containing a tracking number then the e-mail is attached to a 'Completed' service ticket, but the agent responsible will not be aware of this as it might not show in their Inbox.
    An agent regularly tracks new e-mails so will pick up on this, but then has to re-open the service ticket before the agent responsible (ususally another agent) can see it and respond.
    What I would like to achieve is to automatically have ERMS re-open the service ticket that the new e-mail is assigned to. In this way the agent responsible will be notified immediately and there is no manual intervention required, as such.
    Has anyone done anything like this before?.
    With regards
    Gary King
    Edited by: Gary King on Nov 17, 2009 5:03 PM

    Hi Gary,
    We have done something very similar to this. Here is how we achieved it:
    1. Create your own class using the standard Action Handling classes as a guide (you can find these in SPRO: Customer Relationship Management > E-Mail Response Management System > Service Manager > Define Service). You need to use Interface IF_CRM_ERMS_SERVICE.
    You can retreive the Service Ticket number from the Fact Base as follows:
    service_manager->factbase->get_by_xpath( '/parts/context/stkt/number/text()' )
    You then just need to get the guid and run the following two function modules to update the status of the Service Ticket and save:
    CRM_STATUS_CHANGE_EXTERN_OW
    CRM_STATUS_SAVE_OW
    2. In SPRO: Customer Relationship Management > E-Mail Response Management System > Service Manager > Define Services create your own custom Service with Service Type Action Handling and reference the Class you created.
    3. in SPRO: Customer Relationship Management > E-Mail Response Management System > Service Manager > Define Repository under Context ERMS add a new Action and enter the Action Service ID created previously.
    4. Amend your default ERMS rule policy in the Rule Modeller, and add a new rule with the new Action based on any conditions you want to use.
    5. Before testing first run program CRM_ERMS_REGEN_RULES to regenerate your rule policy (you need to do this if the repository is changed)
    Hope this helps,
    Sam

  • SRM 7.0 - Process controlled workflow

    Hi,
    Landscape -  SRM 7.0 SP05
    Workflow - Porcess controlled
    Scenario - Self service procurement
    Problem:
    1. We have mulitple level approval workflow for the shopping cart. I am using standard workflow task- 40007953 and using /SAPSRM/BD_WF_RESP_RESOLVER badi to determine agents.
    2. All the potential approvers (managers) are determined correctly by this badi but the issue is work-item is sent to all the approvers at the same time where as the requirement is to sent the work-item to each approver in series i.e. only when the work-item is approved by the lower level manager, it should go to the higher level manager.  Currently, this workflow task sends the work-item to all potential approvers at one go who can start working on parallely which is not desired.
    Could anyone please help me to resolve this?
    Please note that adding additional process steps in the process-level configuration was the option but we could not opt for that at this point of development as we have gone too far in terms badi development for agent derterminiation
    Thanks & regards,
    Amit

    Amit,
      It is not possible to send the work item to people in sequence by configuring only one process level. If you have only one process level, the agent determination will only be applicable to that process level. If you are trying to assign multiple agents to that step, then all will get the work item at the same time.
    I recommend doing one thing, Create multiple process levels(= no of approval levels you want). For each process level you keep same event and expressions. But your agent determination badi implementation need to be tweaked. Here is how you can do that
    Use Parameters along with agent determnation badi implementation. In other words derive Agents based on the value of parameter using your badi implementation. This parameter can be configured in Process Controlled Workflow Configuration.
    Example,
    Process step 1 - WF_BADI - Parameter1
    Process step 2 - WF_BADI - parameter2
    Now write some code in the WF_BADI to pick up particular agent if parameter value is Parameter1 , pick another agent if parameter value is parameter2. Doing this way you wont ve to redesign your BADI implementation as you are able to break up the Agent logic based on parameter values.
    Virender Singh

  • Is this a sign that hard-drive is failing?

    Hi all,
    My SnowLeopard started to NOT show icons under icon view in the documents, desktop, applications windows; only the name will be shown in white color font against a black backdrop. (This has happened before but it returned to the normal state where I can see both the icon and the name of the documents.) Why is that so? Is it a sign that the hard drive is failing?
    I would like to know how to post screenshot here so that people can perhaps, better understand my situation.

    JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ wrote:
    I used S.M.A.R.T. and it says "Verified"
    Is the SMART check foolproof?
    Nope
    On the other note, my hard drive is making clicking noise occasionally, for instance when I start a video file or an app, but is there any way to better define "loud noise"?
    Erm.....I would say two or three times it's normal click volume. Does it make them at start up and take quite some time to start up or find files?
    If so get a new one. Before it decides to turn its last spin. If you haven't got a portable HD, now might be the time to get one. You could keep it as a backup and clone to or from it.

  • Agent Assignment Issue

    Hi Experts!
    I have successfully activated the PR and PO standard workflow scenario.  The only problem is that <b>any user can RELEASE the PR or PO document even if he/she is not the intended approver</b>.
    The PR and PO (IMG) release strategies were already defined and I have activated the workflow relevant release codes (MM configuration).
    I used the standard workflow template for these scenarios.
    The sending of workitem to the approver's inbox works fine.  However, other users can view the document and they can <b>RELEASE</b> it.
    How could I restrict the approval process where the intended (defined) approvers can only release the document?
    Thanks for your help!
    <i>I will reward point for useful answers!</i> (--,)
    Reymar

    Hi Arghadip!
    Thanks for that additional info.
    I still have problems with the issue.
    The approval of PO and PR document involves a hierarchy of approvers.  Meaning, a certain document may have 3 or more approvers.
    In this case, <b>Approver2</b> can view the document and RELEASE the document even if <b>Approver1 has not yet approved the document</b>.  This scenario should not happen. It should follow the designed hierarchy of approval.
    On a positive note, the sending of SAPmail (workitems) works fine and it follows the hierarchy of approval. If Approver1 releases the document, a mail (workitem) is sent to Approver2. If Approver2 releases the document, a workitem is sent to Approver3.  This is a good scenario.
    The major problem is, (for example) <b>Approver3</b> can release the document even if it is <b>still Approver2's turn to release</b>. Also <b>Approver1</b> can still release the document even if it is now <b>Approver3's</b> turn to release.
    Am I missing something very important here?
    Thanks.
    Regards,
    Reymar
    Message was edited by:
            Reymar Ellazo

  • User Details Data Source in CUP 5.3

    Dear GRC Gurus,
    Iam configuring CUP 5.3., in the User data source (which is used to fetch users,approvers,managers from backend)  there is User Details Data Source -> i select SAP and i get the system name -> There is a Field Function Template -> there are two options, standard and Custom. 
    What is the use of Function Template ?
    What is standard and Custom?
    If we select Custom, what should we enter in Function Template Name?
    Can you please clarify
    Thanks a lot...
    Regards
    Selva

    Hi,
    The user data source only reads the user details for use in defaulting the information into request forms / workflow.
    I believe that the function template just tells the system whether to use standard fields within the SAP user master or whether you have requirements to use alternative field mappings.
    I don't think that the custom template name matters as it is identified.
    I must admit that I haven't used it so I may be wrong but that is my current understanding!
    Regards, Simon
    Edited by: Simon P Persin on Oct 26, 2009 4:40 PM

  • Role Reaffirm in GRC10

    Hi all,
    did anyone use the Role Reaffirm functionality within GRC10?
    The functionality seems to be available, but we cannot get any roles listed to be reaffirmed.
    We have defined approvers for roles in GRC, have users assigned, ran the RR Reminder background job.
    Is there anything missing?
    The config parameters seem to have magically disappeared from the list of available parameters.
    Also could not find any documentation on Role Reaffirm in AC 10
    Thanks for some input,
    Daniela

    Hello experts,
    I get the same issue:
    I have 1 role with reaffirm expiration on 05/16/2013 and 1 role which already had expired on 05/08/2013.
    In order of the fact, that today is 05/15/2013, I expect in 'Access Management > Role Mining > Role Reaffirm' a result of 2 roles which have to be reaffirmed.
    But it already gives the warning "No records found"!
    In advice of Leon I tried to type the value '1' in "Number of days before Duedate", so I would expect 1 role as result... but: "No records found"!
    I attached some screenshots of my configuration.
    Any ideas?
    EDIT: can somebody tell me the reminder email notification Job for role reaffirm? I only know the Job "GRAC_ERM_ROLE_CERTIFY_NOTIF" for role certification
    Thanks in advance :-)
    Edgar

  • OTL Multiple Approver Levels

    In OTL while defining Approvers, We have defined HR Supervisor as Approver for Human Resources Applications. Now we want to set second approver level, which can be person/ or formula.
    But when I defined another level with same Application it gives an error that I can not have two rows for same application. Then how can I implement above functionality using approval style

    I guess you can achieve it using Entry Level Aprovals.
    1. Define a empty Time category(TC1)..i.e. just select Dummy Element context, do not select any element name (its implied that Time category includes all elements)
    2. In the Approval style scree, select Entry level approvals as the approval mechanism.
    3. Click Entry Level approval fragments button
    4. Define as follows
    Row1=> TC1 - HR Supervisor - 1 (seq)
    Row2=> TC1 - Person - <person name> - 2(seq)
    I guess it should work

  • Role created at the Backendsystem before Completion of RoleGeneration stage

    Hello ERM Experts,
    When a role is created through ERM and roles should gets created on Backend systems after completion of the Role approval stage/Generation stage (Action step 6-In ERM).
    But in our case Role is created on Backend system at the time of authorization definition (Action step 2- In ERM).
    Please suggest me, is there any possibility to stop the role creation on Backend system until the Role generation/Approval phase completed?
    Thanks & Regards,
    Arjuna.

    Hello Arjunab,
    When you define the Authorization Data, do you use the option to Maitain in PFCG?
    If you do then the role is created in the backend to allow you to edit the data and then synchronize the changes back into ERM.
    You could try change the paramater "Allow editing to role authorizations in PFCG" to NO in Configuration>Miscellaneous and then try create a new role, it should only allow you you define the role in ERM and then generate the role in the backend system at the appropriate step in the methodology.
    Hope this helps.
    Regards,
    Chris

  • Workmanagers in OSB

    Hi gurus,
    IHAC which is using OSB to integrate different systems. As a good practice, we are defining work managers for proxy services (requesters). We did a simple test, configuring a workmanager with a thread constraint = 10 and a capacity constraint =3 and applying to a particular service in OSB.
    A test of 50 concurrents request was sent to that service. However, the workmanager processed all of them sucessfully.
    I can guest that maybe the load wasn't so hard and the thread constraint wasn't a limitation neitherl, serializing the requests in the queue. But we expected that capacity constraints worked rejecting some of these requests.
    Are we doing the test in the right way? Do constraints only apply based on the whole load of the server?
    Thanks.
    Edited by: gabi.s on Jul 19, 2012 10:09 PM

    It really depends on the type of service, message flow design and it's transactional nature that how OSB processes a transaction. OSB is meant for high performance processing and hence most of the internal processing is done asynchronously, until and unless it is bounded to process the request synchronously because of configuration or transport. So in your case, most probably the message flow is asynchronous (for e.g. - one way HTTP) and straight forward (for e.g. - direct routing with/without a very light transformation) and hence threads are getting released quite quickly and backlog is not reaching to the threshold.
    A test of 50 concurrents request was sent to that service. However, the workmanager processed all of them sucessfully.How are you posting 50 concurrent requests to OSB? Though it may seem concurrent but for OSB, all the 50 requests might not be reaching at the same time and because of stateless nature of OSB, throughput is high.
    You may consider testing with a continuous load on OSB with huge volume of transactions and I am sure that you will notice rejections because of capacity constraint.
    Regards,
    Anuj

  • Reuirements to setup parallel concurren processing in r12

    Dear All,
    Can anyone please tell me what are the requirements to setting up parallel concurrent processing in R12?
    Thanks in advance.
    -Regards,
    Senthil

    Senthil,
    Please refer to chapter "Defining Concurrent Managers" section "Overview of Parallel Concurrent Processing" in "Oracle Applications System Administrator's Guide - Configuration" manual.
    Oracle Applications System Administrator's Guide - Configuration
    http://download.oracle.com/docs/cd/B40089_10/current/acrobat/120sacg.pdf
    Note: 384248.1 - Sharing The Application Tier File System in Oracle E-Business Suite Release 12
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=384248.1

  • How to define role approver/owner - through condition id in ERM 10.0

    Hi All,
    We have created a BRF + rule for Role approver with Business Process & Function area by giving the Result value as Condition ID eg., Z001
    We have provided this condition ID Z001 - in Role Owners table [Under Set Up- Role Owners] and defined the role approver and assignment approver with the User details.
    Now when we are trying to create a role with the above attribute combination of Business Process & Function area - the role is not picking up the Role Owners automatically in Owners/Approver tab [In 5.3 we can maintain approval criteria where we can define the role owners/approvers based on different attributes].
    Are we missing any configuration setting here for auto pick up of Role Owners based on defined attributes from Role Owner table.
    Thanks and Best Regards,
    Srihari.K

    Hello All,
    Please help us , I am also struggling with same issue.
    Thanks in advance,
    Jagat

Maybe you are looking for