SC Workflow: Runtime Actual Approval determination
Hi all,
I want to know who approved the Shopping Cart (SC) in runtime within the BADI so that comparing his Approval Limit with the cost of SC I can decide whether to skip or go for next approval levels.
Please help how to find it out. I have checked the history table but it contains a field "Type" whose possible values can only be either "changed" or "insert" and does not indicate "Approve" status for any agent....
Please help,
Thanks
Sangharsh
Hi
Try this BADI - BBP_WFL_APPROV_BADI.
<u>BBP_WFL_APPROV_BADI</u>
Determin. Approv. for n-Level. Dynamic Approval WFL
You need to make a logic in your case.
<u>Refer to the sample BADI logic.</u>
METHOD if_ex_bbp_wfl_approv_badi~get_remaing_approvers.
* Interface parameters:
* OBJECT_ID TYPE CRMT_OBJECT_ID "Import
* OBJECT_TYPE TYPE CRMT_SUBOBJECT_CATEGORY "Import
* GUID TYPE BBP_GUID_32 "Import
* ACTUAL_APPROVAL_INDEX TYPE SWH_NUMC10 "Import
* APPROVAL_HISTORY_TABLE TYPE BBP_WFL_APPROVAL_HISTORY_BADI "Import
* ITEM_APPROVAL_HISTORY_TABLE TYPE BBPT_WFL_ITEM_APPROVAL_BADI "Import
* APPROVAL_TABLE TYPE BBPT_WFL_APPROVAL_TABLE_BADI "Export
* ITEM_APPROVAL_TABLE TYPE BBPT_WFL_ITEM_APPROVAL_BADI "Export
* NO_FURTHER_APPROVAL_NEEDED TYPE BOOLEAN "Export
* ITEM_APPROVAL_OBJ TYPE BBPT_WFL_ITEM_APPROVAL_OBJ "Changing
* This is the 2nd example of the BADI implementation that includes
* dynamic spending limit approval for PO
INCLUDE <swfcntn01>. "Workflow
DATA:
ls_header TYPE bbp_pds_sc_header_d,
ls_approver TYPE bbp_wfl_approval_table_badi,
lv_approval_index TYPE swh_numc10,
lv_guid TYPE crmt_object_guid,
lo_new_instance TYPE swf_bor_object,
lt_approval_agent_obj TYPE TABLE OF swf_bor_object,
ls_wa_agent_obj TYPE swf_bor_object,
lo_user TYPE swf_bor_object,
ls_approval_agent TYPE bbp_wfl_approval_table,
lv_index TYPE syindex,
lv_usr01_name TYPE ad_namtext,
lt_approval_init_agents TYPE TABLE OF bbp_wfl_approval_table,
ls_wa_approval_init_agents TYPE bbp_wfl_approval_table,
ls_wa_approval_history TYPE bbps_wfl_history_line_badi.
* Business objects type (local constants)
CONSTANTS:
c_po TYPE crmt_subobject_category_db VALUE 'BUS2201',
c_biddingdoc TYPE crmt_subobject_category_db VALUE 'BUS2200',
c_quotation TYPE crmt_subobject_category_db VALUE 'BUS2202',
c_grse TYPE crmt_subobject_category_db VALUE 'BUS2203',
c_invoice TYPE crmt_subobject_category_db VALUE 'BUS2205',
c_shop TYPE crmt_subobject_category_db VALUE 'BUS2121',
c_contract TYPE crmt_subobject_category_db VALUE 'BUS2000113',
c_salescontract TYPE crmt_subobject_category_db VALUE 'BUS2000114',
c_avl TYPE crmt_subobject_category_db VALUE 'BUS2206',
c_invoicegrp TYPE crmt_subobject_category_db VALUE 'BUS2207',
c_vendor_obj TYPE crmt_subobject_category_db VALUE 'BUS1006200'.
*** workflow approval states
CONSTANTS:
c_wf_approved TYPE bbp_wfl_approvalstate VALUE '0',
c_wf_rejected TYPE bbp_wfl_approvalstate VALUE '1',
c_wf_not_instanced TYPE bbp_wfl_approvalstate VALUE '2',
c_wf_changed TYPE bbp_wfl_approvalstate VALUE '3',
c_wf_partialapproved TYPE bbp_wfl_approvalstate VALUE '4',
c_wf_step_in_process TYPE bbp_wfl_approvalstate VALUE '5'.
CLEAR: lt_approval_init_agents[], lt_approval_agent_obj[],
ls_wa_agent_obj, ls_approval_agent, ls_wa_approval_init_agents,
ls_wa_approval_history.
* map input data to local data
* map char32 to raw16
MOVE guid TO lv_guid.
CASE object_type.
* ====================== shopping cart =========================== *
WHEN c_shop.
*** get the details of the shopping cart
CALL FUNCTION 'BBP_PD_SC_GETDETAIL'
EXPORTING
i_guid = lv_guid
i_object_id = object_id
IMPORTING
e_header = ls_header.
IF ls_header-total_value < 490000000.
*** 2 step approval
CASE actual_approval_index.
WHEN 0.
ls_approver-approval_index = 1.
ls_approver-approval_agent = 'USMANAGER1'.
ls_approver-name = 'Arthur Manager1'.
ls_approver-approval_description = 'First approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 2.
ls_approver-approval_agent = 'USMANAGER2'.
ls_approver-name = 'Arnold Manager2'.
ls_approver-approval_description = 'Second approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 2.
ls_approver-approval_agent = 'USMANAGER4'.
ls_approver-name = 'Thomas Manager4'.
ls_approver-approval_description = 'Second approval step'.
APPEND ls_approver TO approval_table.
WHEN 1.
ls_approver-approval_index = 1.
ls_approver-approval_agent = 'USMANAGER1'.
ls_approver-name = 'Arthur Manager1'.
ls_approver-approval_description = 'First approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 2.
ls_approver-approval_agent = 'USMANAGER2'.
ls_approver-name = 'Arnold Manager2'.
ls_approver-approval_description = 'Second approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 2.
ls_approver-approval_agent = 'USMANAGER4'.
ls_approver-name = 'Thomas Manager4'.
ls_approver-approval_description = 'Second approval step'.
APPEND ls_approver TO approval_table.
WHEN 2.
ls_approver-approval_index = 2.
ls_approver-approval_agent = 'USMANAGER2'.
ls_approver-name = 'Arnold Manager2'.
ls_approver-approval_description = 'Second approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 2.
ls_approver-approval_agent = 'USMANAGER4'.
ls_approver-name = 'Thomas Manager4'.
ls_approver-approval_description = 'Second approval step'.
APPEND ls_approver TO approval_table.
WHEN OTHERS.
no_further_approval_needed = 'X'.
ENDCASE.
ELSE.
CASE actual_approval_index.
*** 3 step approval
WHEN 0.
ls_approver-approval_index = 1.
ls_approver-approval_agent = 'USMANAGER1'.
ls_approver-name = 'Arthur Manager1'.
ls_approver-approval_description = 'First approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 2.
ls_approver-approval_agent = 'USMANAGER2'.
ls_approver-name = 'Arnold Manager2'.
ls_approver-approval_description = 'Second approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 2.
ls_approver-approval_agent = 'USMANAGER4'.
ls_approver-name = 'Thomas Manager4'.
ls_approver-approval_description = 'Second approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 3.
ls_approver-approval_agent = 'USMANAGER3'.
ls_approver-name = 'Peter Manager3'.
ls_approver-approval_description = 'Third approval step'.
APPEND ls_approver TO approval_table.
WHEN 1.
ls_approver-approval_index = 1.
ls_approver-approval_agent = 'USMANAGER1'.
ls_approver-name = 'Arthur Manager1'.
ls_approver-approval_description = 'First approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 2.
ls_approver-approval_agent = 'USMANAGER2'.
ls_approver-name = 'Arnold Manager2'.
ls_approver-approval_description = 'Second approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 2.
ls_approver-approval_agent = 'USMANAGER4'.
ls_approver-name = 'Thomas Manager4'.
ls_approver-approval_description = 'Second approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 3.
ls_approver-approval_agent = 'USMANAGER3'.
ls_approver-name = 'Peter Manager3'.
ls_approver-approval_description = 'Third approval step'.
APPEND ls_approver TO approval_table.
WHEN 2.
ls_approver-approval_index = 2.
ls_approver-approval_agent = 'USMANAGER2'.
ls_approver-name = 'Arnold Manager2'.
ls_approver-approval_description = 'Second approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 2.
ls_approver-approval_agent = 'USMANAGER4'.
ls_approver-name = 'Thomas Manager4'.
ls_approver-approval_description = 'Second approval step'.
APPEND ls_approver TO approval_table.
ls_approver-approval_index = 3.
ls_approver-approval_agent = 'USMANAGER3'.
ls_approver-name = 'Peter Manager3'.
ls_approver-approval_description = 'Third approval step'.
APPEND ls_approver TO approval_table.
WHEN 3.
ls_approver-approval_index = 3.
ls_approver-approval_agent = 'USMANAGER3'.
ls_approver-name = 'Peter Manager3'.
ls_approver-approval_description = 'Third approval step'.
APPEND ls_approver TO approval_table.
WHEN OTHERS.
no_further_approval_needed = 'X'.
ENDCASE.
ENDIF.
* ====================== purchase order ============================= *
WHEN c_po.
*** 1) Evaluate the list of spending limit approvers from BOR attributes
swf_create_object lo_new_instance object_type guid.
swf_get_property lo_new_instance 'SLManagerUserList'
lt_approval_agent_obj[].
lv_index = 1.
LOOP AT lt_approval_agent_obj INTO ls_wa_agent_obj.
swf_get_property ls_wa_agent_obj 'User' lo_user.
swf_get_property lo_user 'NameWithLeadingUS'
ls_approval_agent-approval_agent.
swf_get_property lo_user 'Name' lv_usr01_name.
MOVE lv_usr01_name TO ls_approval_agent-name.
ls_approval_agent-approval_index = lv_index.
ls_approval_agent-approval_branch = 1.
ls_approval_agent-initial_index = lv_index.
ls_approval_agent-initial_agent =
ls_approval_agent-approval_agent.
ls_approval_agent-approval_state = c_wf_not_instanced.
APPEND ls_approval_agent TO lt_approval_init_agents.
lv_index = lv_index + 1.
ENDLOOP.
*** 2) Evaluate the list of remaining approvers. The actual approver
*** belongs to the list as well.
LOOP AT approval_history_table INTO
ls_wa_approval_history WHERE type <> 'I'.
LOOP AT lt_approval_init_agents INTO
ls_wa_approval_init_agents.
IF ls_wa_approval_init_agents-approval_index LT
ls_wa_approval_history-approval_index.
DELETE lt_approval_init_agents.
ENDIF.
ENDLOOP.
ENDLOOP.
* fill the import table
CLEAR ls_wa_approval_init_agents.
LOOP AT lt_approval_init_agents INTO
ls_wa_approval_init_agents.
CLEAR ls_wa_approval_history.
MOVE-CORRESPONDING ls_wa_approval_init_agents TO
ls_wa_approval_history.
APPEND ls_wa_approval_history TO approval_table.
ENDLOOP.
IF approval_table[] IS INITIAL.
no_further_approval_needed = 'X'.
ENDIF.
* ======================== contract ================================ *
WHEN c_quotation.
IF lv_index LT 2.
ls_approval_agent-approval_description = '1st Approval'.
ls_approval_agent-approval_index = 1.
ls_approval_agent-approval_branch = 1.
ls_approval_agent-initial_index = 1.
ls_approval_agent-name = 'Hennes Kaempfer'.
ls_approval_agent-approval_agent = 'USMANAGER4'.
ls_approval_agent-approval_state = c_wf_not_instanced.
APPEND ls_approval_agent TO approval_table.
ls_approval_agent-approval_index = 1.
ls_approval_agent-approval_branch = 1.
ls_approval_agent-initial_index = 1.
ls_approval_agent-name = 'Paul Reiter'.
ls_approval_agent-approval_agent = 'USMANAGER5'.
ls_approval_agent-approval_state = c_wf_not_instanced.
APPEND ls_approval_agent TO approval_table.
ls_approval_agent-approval_description = '2nd Approval'.
ls_approval_agent-approval_index = 2.
ls_approval_agent-approval_branch = 1.
ls_approval_agent-initial_index = 2.
ls_approval_agent-name = 'Dieter Mueller'.
ls_approval_agent-approval_agent = 'USMANAGER33'.
ls_approval_agent-approval_state = c_wf_not_instanced.
APPEND ls_approval_agent TO approval_table.
ELSE.
no_further_approval_needed = 'X'.
ENDIF.
ENDCASE.
ENDMETHOD.
Regards
- Atul
Similar Messages
-
SRM SC Workflow: Runtime Actual Approval determination
Hi all,
I want to know who approved the SC in runtime within the BADI so that comparing his Approval Limit with the cost of SC I can decide whether to skip or go for next approval levels.
Please help how to find it out. I have checked the history table but it contains a field "Type" whose possible values can only be either "changed" or "insert" and does not indicate "Approve" status for any agent....
Please help,
Thanks
SangharshHi Sangharsh,
I believe that you are using workflow approval BAdI - BBP_WFL_APPROV_BADI.
This BAdI is having a table called APPROVAL_TABLE, all the agents in this BADI will appear in your approval pre-view.
You have to write a code in your BADI as follows -
- Check Approval limit of the manager
- If it is more than SC value, append APPROVAL_TABLE otherwise you can skip him.
If you need more help, do let me know.
Thanks and Regards
Pras -
Error in Workflow For Role Approval
Hello ,
While i am approving the request i am getting the following error:
Error processing your request, Request no: 2 in stage : ERM_STAGE
What could be the cause for this error?
Logs are pasted for your reference:
2009-08-19 14:31:40,244 [SAPEngine_Application_Thread[impl:3]_6] ERROR com.virsa.ae.service.ServiceException: Exit URI is not defined for wfType : RE
com.virsa.ae.service.ServiceException: Exit URI is not defined for wfType : RE
at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.getDocument(RequestExitServiceHelper.java:188)
at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.callExitService(RequestExitServiceHelper.java:157)
at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.callExitServiceForApprovedRequest(RequestExitServiceHelper.java:56)
at com.virsa.ae.accessrequests.bo.RequestBO.callExitService(RequestBO.java:5335)
at com.virsa.ae.accessrequests.bo.RequestBO.approveRequest(RequestBO.java:5174)
at com.virsa.ae.accessrequests.bo.RequestBO.approveRequest(RequestBO.java:4967)
at com.virsa.ae.accessrequests.actions.RequestViewAction.confirmRequestApproval(RequestViewAction.java:928)
at com.virsa.ae.accessrequests.actions.RequestViewAction.execute(RequestViewAction.java:103)
at com.virsa.ae.commons.utils.framework.NavigationEngine.execute(NavigationEngine.java:271)
at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:425)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:321)
at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:377)
at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:455)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:321)
at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:377)
at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:455)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:104)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)
2009-08-19 14:31:40,260 [SAPEngine_Application_Thread[impl:3]_6] ERROR com.virsa.ae.service.ServiceException: Exit URI is not defined for wfType : RE
com.virsa.ae.service.ServiceException: com.virsa.ae.service.ServiceException: Exit URI is not defined for wfType : RE
at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.getDocument(RequestExitServiceHelper.java:209)
at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.callExitService(RequestExitServiceHelper.java:157)
at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.callExitServiceForApprovedRequest(RequestExitServiceHelper.java:56)
at com.virsa.ae.accessrequests.bo.RequestBO.callExitService(RequestBO.java:5335)
at com.virsa.ae.accessrequests.bo.RequestBO.approveRequest(RequestBO.java:5174)
at com.virsa.ae.accessrequests.bo.RequestBO.approveRequest(RequestBO.java:4967)
at com.virsa.ae.accessrequests.actions.RequestViewAction.confirmRequestApproval(RequestViewAction.java:928)
at com.virsa.ae.accessrequests.actions.RequestViewAction.execute(RequestViewAction.java:103)
at com.virsa.ae.commons.utils.framework.NavigationEngine.execute(NavigationEngine.java:271)
at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:425)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:321)
at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:377)
at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:455)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:321)
at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:377)
at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:455)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:104)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)
Caused by: com.virsa.ae.service.ServiceException: Exit URI is not defined for wfType : RE
at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.getDocument(RequestExitServiceHelper.java:188)
... 32 more
Regards,
Kumar RayuduHello Gangadhar,
What you want to say is i have not specified the correct URL in Custom Approver Determinator but i have not used the Webservice option in CAD Type but specified the Attribute as Request Type.
In ERM i have specified the correct URL by copying the correct URL using the WSDL.
Can you please brief it?
Regards,
Kumar Rayudu
Edited by: Kumar Rayudu on Aug 19, 2009 3:10 PM -
Custom workflow for Fiori Approve Timesheets
Hello All,
I am investigating complexity of adding custom workflow to Approve Timesheets.
There is BADI SRA010_BADI_TIMESHEET_APV.
Any experiences/advices ?Hi Lukasz,
How do you change approver using data from Ztable in the current system?
If you are talking about workflow approver determination logic, it is a job for Workflow Engine and not for Fiori.
Regards, Masa
SAP Customer Experience Group - CEG -
Purchaser Assignment / PrGrp:Workflow problem:No approver found.WS14000044
Hello,
I am facing a problem concerning the Workflow WS14000044.
In the organizational structure using transaction 'PPOMA_BBP', I went
to the bottom left hand panel. I have assigned a purchasing group to a
purchaser as follow :
Right click on a "Purchasing Group" and I select "Purchaser Assignment"
menu.
Then the right hand panel changes from "Staff assignments"
to "Purchaser Assignment". I select a purchasing group and I assign
this purchasing group to a purchaser.
But when i create the SC, the system does not retrieve the 'approver'
for workflow WS14000044. Error mesage in approval preview : 'no approvers'.
Regards,
LinaHi,
Please refer to the following ---
This workflow is started for a shopping cart if the
shopping cart requires completion by the purchaser before
actual approval. You define the criteria used to decide that
further editing is required in the start conditions. Provided that
these criteria are fulfilled, this workflow is started after the
purchaser has edited a shopping cart (and occasionally in the case
of a change during approval). After the purchaser has edited
the shopping cart, the creator receives a work item and
the normal approval process can start. -
Freinds,
Any idea about 'BPO' approver determinator for workflow type Complaint user provisioning in CUP and from where this would get names from.
Thanks in advance.
SrinuNo...when you go to create stage..these is a standard approver determinator ' BPO' when you select workflow type 'compliant user provisioning'.
for examlpe if you select security lead as a approver in a stage then the workflow would pick the name from the approvers-> security lead...so if you select BPO in the stage where do we have to maintain the names of the BPO's.
Thanks,
Srinu -
CUP Forks & Security Approver Determinator
Hi All,
We are currently working on our CUP workflows and are planning on using forms to distinguish between manual provisioning (systems such as MDM console) and autoprovisioning (ABAP and java stacks). My question is, when we use the fork condition NON-SAP and SAP, where does CUP look to determine this? We are planning on using applications to setup our manual provisioning systems but I also know we could create them as dummy "other" connectors (although messy).
Also, what is the difference between Security Lead and Security approver determinators when configuring a stage? What IDs does CUP look at for these two? I only see Security Lead under Approvers.
Thanks!
Grace RaeHi Grace,
Forks only work for non-SAP connectors, so you's have to go for a dummy system if you really need fork. Alternatively you can chose an initiator based on roles, which will also allow you to fork the request on the first stage.
The security approver determinator is a group approver which looks for everyone with the UME role "AESecurity" and routes the request to them in parallel.
Frank. -
Email Notifications through workflow for all Approved and Rejected Orders
hi,
i have to send Email Notifications through workflow for all Approved and Rejected Orders to the user who have submitted the order for approval.how could it be done.please send ur solutions.
regards
yesukannanHi,
An option would be use Oracle Alert. Create an event based alert on the table where you have order approvals or rejections. This alert will be raised after inserting or updating this table. Create an action linked to this alert, and choose message as action type.
This setup can be done under Alert Manager Responsibility.
Regards,
Ketter Ohnes -
Can not send mail from PR Workflow to the approver
Dear all,
I have issues about send mail from PR Workflow to the approver.
Now when user create PR and the corresponding user can receive the workflow items in SBWP.
But no email from the user to approver.
If I assign authorization SAP_ALL to the user that create PR. The approver can recieve the workflow item PR in SBWP and email to their mail
Can you tell me about the authorization that can allow the user to send the workflow item PR in SBWP and email to the approver?
Now user can send mail to external and internal mail and I also configured the mail server in SCOT and can successfully send a mail to users in SO01 by manually creating a message.
Now the approver not receive any email but can receive a workflow item in SBWP
Regards,
PanneeDear all,
Thank you for all suppport, Now I can solve issues.
Regards,
Pannee -
Workflow for Document Approval
Hi all,
I'm a newbie to SolMan and is trying to figure out how to implement a workflow for document approval. A similar question has probably been posted in the past, but I can't find a definite solution, only some hints.
Basically, what we're trying to achieve is the following:
When a document is uploaded using SOLAR02, and the creator of the document changes the status to ready for sign-off, we would like to trigger a workflow which will send an email to a couple of persons who are responsible to approve the document. We already implement the digital signature, we just want to add an automatic email notification to be sent to the approvers.
Based on my research, it seems that this is not supported by SolMan and hence we have to do a custom development.
There's an object key called SOLMANDOC and we should raise an event (something like SIGNATURE_PROCESS_START) to send an email notification to the approvers. Can somebody confirm whether my understanding is right ? Does anybody know the name of the BADI that we can modify to achieve our goal ?
FYI, we're using SolMan Rel 7.01 SP 19.
Thanks in advance
LaraHi Phil,
I'm facing with problems with creating a simple 2 steps release strategy.
the problem is I cant approve the last step of the release.
This is what I did:
In spro Digital Signature->Signature strategy:
in "Define Authorization groups" I create this entries:
1. EING
2. VERIF
in "Define Individual Signatures" I create this entries:
1. S1 EING
2. S2 VERIF
in "Define Individual Strategies: I create this entries:
SigStrat: ZSIGSTR
Signature Method: R
Display comment: X Required
Display Remark: X
Display document: X
Verification: not checked
in "Assign individual signatures"
CtrIn Indiv.SIG. AGrpDIG
1 S1 EING
2 S2 VERIF
Display Predecessor for Ctrln is 2 is 1
for "Display release statuses" an entry with one line with the value 1
and in "Display individual signatures there 2 entries 1 and 2.
in spro "Define Document status schemes"
stat scheme "ZSIGSTR"
4 status:
Status init status Sequence Low High lock Signature schma End status Cancel status
COPY_EDITING X 10 10 20 -
REVIEW 20 10 40 X ZSIGSTR RELEASED DECLINED
RELEASED 30 10 40 X
DECLINED 40 10 20
I created two roles with object c_sign_bpr one with the value "EING" and the other with the value "VERIF"
I assign this status scheme to a document type in my project.
I tried to release a document the first step was the author of the document move the status to "REVIEW" and I got a window that i need to enter my password and it worked ok.
The problem is in the second step that I need to release the document (now is in a REVIEW status) When I press on the icon in order to release I didn't get the option to release only to cancel there is no "V" option in the small window.
Can you please tell me if I did a correct customization? also can you tell me if my problem is maybe missing authorization? Can you direct me to reading material or to an example?
Best regards
Lior Grinberg
Edited by: Lior Grinberg on Nov 28, 2011 6:22 PM -
SAP GRC 5.3 CUP: Approver Determinator "Super Access Owner"
Hi,
when configuring a stage, a standard approver determinator called "Super Access Owner" could be selected.My question is where to specify the Super Access Owner in SAP GRC CUP? In the Config Guide of SAP GRC AC 5.3 a hint explains on page 145
"If you select Superuser Access Owner as the approver determinator, the system
fetches the configured owner from the SAP system where the Superuser Privilege
Management is installed and assigns the request to that particular approver."
I do not really unterstand where to specifiy. Is it the former FireFighter in the backend.
Did anybody user this Approver Determinator already?
Thank you in advance.
MarcoHi Marco,
Yes this approver is defined in the backend Firefighter which is now Super User Privelege Management. The Firefighter ID owner will be taken as the approver if we select Super User Access Owner in the CUP request. This option is basically being provided for Integration of Compliant User Provisioning and Super User Privelege Management for SAP GRC AC 5.3. You may now create a request to assign a Firefighter ID to a Firefighter in CUP and do not need to go to SPM for the same.
In case you do not want to use this approver, please create a Custom Approver Determinator for the same.
Hope this helps.
Harleen -
Create one workflow ( 2 level approval - manager and financial manager). An
Hi
I have requirement to Create one workflow ( *2 level approval - manager and financial manager).* And escalate it after 1 day to Financial manager's supervisor
I have no idea about escalation through BPEL Compoiste in OIM
Can please any help me outThe status can be alerted and the task assigned to weblogic due to a fault in your process. Without looking at your process or the exception, it can be difficult to say what went wrong, but check if you have the user in the system to whom you are trying to assign the task to.
As for escalation, you need to go through that link to configure escalations and in escalations you can select management chain as the route. This would escalate it to manager's manager if the manager does not work on the request for specified time. For other requirements around escalation, you will have to first get a basics right and working for you. Once you are done with that, you can post here any questions which you might have about making the complex ones and we can try to help.
-Bikash -
Approver determination using HR functions
Hello,
this is my first question on this forum, so be tolerant !!
Has anybody ever used HR functions (assigned at position level (S) in org structure) and corresponding HR search paths to determine approvers, instead of using PFCG roles ?
If yes, what are the constraints ? the gains against PFCG roles ? the performance issues ?
Rgds
ChristopheGordan,
Approver determination in standard is independant from the role. It just get the first manager (hat in org. structure) of the requester, if no direct approver at requester level it goes to the next level, etc.
Usually this is not sufficient for customer and they develop their own determination (badi for dynamic wkf or adhoc object for classic wkf). It is just abap coding so any solution is possible.
About performance using HR path, I have no input. If you need to read all the organization and all beholders of the function, it certainly will be poor performance. If starting from requester and follow up the organization is enough, it should be the same as for the standard processing (manager or requester) .
Rgds,
Pierre -
Workflow SharePoint 2010 -Approval workflow for multiple users
Want to create a 2010 SharePoint server workflow which will allow me to send email once item is added > Start approval process > if approved then mark workflow status as approved and then send email to reviewer 2 and again start the process of approving
> and approved then again mark status to approved and send email to reviewer 3 and mark status to approved if approved by reviewer 2 and end the workflow.Also, if the item is not approved by any user, then it should directly log a comment and go to end
of the workflow.
I had started as something like :
Send Email to rev1
Start approval process for current item with rev1
if approval status is approved
set workflow status to approved
send email to rev2 and so on...everything works but when rev1 rejects the item, then workflow does not go to end of the workflow. One difficult thing is we don't have go to a step option like in 2013 workflows.
I don't know how to move on as when I try to execute the logic, all three approval process(for 3 reviewers) run even if item is rejected .....Please helpCheck these links
https://slingeronline.wordpress.com/2013/02/27/setting-cancel-on-first-rejection-on-an-spd-workflow/
http://sharepointduffbert.com/2014/06/17/getting-an-spd-approval-workflow-to-cancel-on-rejection-or-change/
https://social.msdn.microsoft.com/Forums/office/en-US/c212e5d7-f7bf-4f17-be16-374e02652dbb/reject-stop-workflow-not-working?forum=sharepointcustomizationprevious
https://social.msdn.microsoft.com/Forums/sharepoint/en-US/a2d0a259-f8ca-48cf-b9ab-0c9387329502/sharepoint-designer-workflow-how-to-jump-back-to-previous-workflow-step?forum=sharepointcustomizationprevious
Please 'propose as answer' if it helped you, also 'vote helpful' if you like this reply. -
How to capture the Actual approver from BADI :BBP_WFL_APPROV_BADI
If the approval branch(index) has 5 approvers and If any one of them is approving,
the APPROVAL_HISTORY_TABLE has all the 5 approvers of that branch.
User1 is one of the 5 users.When he is approving,the approval table has all the 5 approvers and no where the actual approver of that branch is captured.
Can we capture the actual approver based on Sy-Uname?
Or is there any other specific solution?please suggest.Hello Kittu,
Here is below process for BBP_WFL_APPROV_BADI BAdI call by function modul:
BBP_WFL_DIN_APPR_CONTAINER_SET > BBP_WFL_DIN_APPR_FINALLIST_GET > BBP_WFL_DIN_APPR_CONTAINER_GET > BAdI BBP_WFL_APPROV_BADI.
Now, check what's happened for first function module local variable lv_actual_index and local table lt_cont_approver
coming from BAdI parameters ACTUAL_APPROVAL_INDEX and APPROVAL_TABLE.
Maybe your BAdI method is not correctly implemented.
Regards.
Laurent.
Maybe you are looking for
-
Mail wont let me click 'send' button
I have a problem and then some questions about my mail app. Below is a screenshot of my problems, the main problem is it wont let me click the 'send' button. The other problem is there is that triangly line symbol new to my windows live account and i
-
Using a foreign language with the Java I/O, and saving to flat file.
I want to use a foreign language in my program, in particular, russian. I want to be able to input the russian text into a GUI and then save the data in a flat file as well as retrieve it again. I am able to save some type of data to the flat file bu
-
I'm having trouble loading some web pages, e.g. can't log into these discussions except via Windows XP in VMware Fusion, and its the same on different macs on the home network and when using Firefox and Camino browsers. The problem is causing me some
-
Jdeveloper 11.1.1.4 Could not create MAR entry for file
Hi i am using jdev 11.1.1.4.i checkout code from svn to jdeveloper . i tried to create EAR file for the application,but while creating EAR jdeveloper throwing some error message as shown below find similar thread JDeveloper Debugger Hangs Could not c
-
Cisco VPN client -install error
Hi, I have a problem when i'm trying to install Cisco VPN client on my Windows 8.1 x64. After downloading 3 or 4 different versions of Cisco it keeps rising the same error concerning a DLL that is required. I'd really appreciate some advice or the re