on 01-29-2009 2:32 PM
Hi,
I am using the BADI BBP_CHNG_AGNT_GET to replace or add as an approver in SRM workflow.
I need to get the SC/PO details, Along with approvers value limit/level.
please help me with code.
Regards
Ahmed.
Hi Rp,
Thanks a lot... there is similar Include ( INCLUDE <swfcntn01>.) for work flow.. i achieved this using the same tech.
Data Decleration
DATA : lv_app_limit TYPE bbp_spers_al-approval_limit," Approver Approval Limit
lv_spe_limit TYPE bbp_spers_sl-spending_limit," Approver Spending Limit
lv_nod_almit TYPE bbp_spers_al-approval_limit," Add or Change Approver
lv_nod_slmit TYPE bbp_spers_sl-spending_limit," Add or Change
lv_guid TYPE crmt_object_guid, " Guid
lv_req_name TYPE req_name, " Requester Name
lv_total_val TYPE bbp_total_value, " PO/SC total value
lv_nod_user TYPE swf_bor_object, " Node User
lv_req_user TYPE swf_bor_object. " Requester Name
Work area
DATA: lw_agetns TYPE swdaagnt, " Agents Details
lw_sc_header TYPE bbp_pds_sc_header_d, " SC Header Details
lw_po_header TYPE bbp_pds_po_header_d. " PO Header Details
Constants Decleration
CONSTANTS: c_co TYPE crmt_subobject_category_db VALUE 'BUS4101', " Create Object
c_sc TYPE crmt_subobject_category_db VALUE 'BUS2121', " Shopping Cart
c_po TYPE crmt_subobject_category_db VALUE 'BUS2201'. " Purchase Order
Transaction Number is Space
CHECK ev_agent_assignment EQ space.
MOVE iv_guid TO lv_guid.
SC or PO
CASE iv_object_type.
WHEN c_sc. " Shoppin Cart
To get Shopping cart Details
CALL FUNCTION 'BBP_PD_SC_GETDETAIL'
EXPORTING
i_guid = lv_guid
IMPORTING
e_header = lw_sc_header.
CLEAR lv_total_val.
MOVE lw_sc_header-total_value TO lv_total_val.
WHEN c_po. "Purchase Order
To get Purchase Order Details
CALL FUNCTION 'BBP_PD_PO_GETDETAIL'
EXPORTING
i_guid = lv_guid
IMPORTING
e_header = lw_po_header.
CLEAR lv_total_val.
MOVE lw_po_header-total_value TO lv_total_val.
ENDCASE.
LOOP AT it_agents INTO lw_agetns.
CLEAR: lv_req_name, lv_nod_user,
lv_req_user, lv_app_limit,
lv_spe_limit,lv_nod_almit,
lv_nod_slmit.
lv_req_name = lw_agetns-agent+2.
Get Approval ,spending limit for all
swf_create_object lv_req_user c_co lv_req_name.
swf_get_property lv_req_user 'ApprovalLimit' lv_app_limit.
swf_get_property lv_req_user 'SpendingLimit' lv_spe_limit.
Get Approval ,spending limit same level or above
swf_create_object lv_nod_user c_co iv_node_user.
swf_get_property lv_nod_user 'ApprovalLimit' lv_nod_almit.
swf_get_property lv_nod_user 'SpendingLimit' lv_nod_slmit.
Add or Change approver: Approver should be same or above to present approver and
approver limit value should be greater than Total SC/PO value.
IF ( lv_app_limit GE lv_total_val OR
lv_spe_limit GE lv_total_val ) AND
( lv_app_limit GE lv_nod_almit OR
lv_spe_limit GE lv_nod_slmit ).
APPEND lw_agetns TO et_agents.
ENDIF.
ENDLOOP.
Regards.
Ahmed.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Sachin,
thanks for replying..
Actually i am looking for how to get approver limit values from SC/PO.
Regards.
ahmed
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
By the way, where are the approver limits maintained ? In a custom table or the approval limits are maintained in the HR attributes ?
If the approval limit of a user is maintained in HR Attributes, use the following code to get the approval limits of the user.
include <cntn01>.
data: ls_appr_lim type bbp_spers_al,
req_user type swc_object,
lv_appr_lim_in_reqcurr like reqhead-total_value.
(Pass the userid into zname).
swc_create_object req_user 'BUS4101' zname.
swc_get_property req_user 'ApprovalLimit' ls_appr_lim-approval_limit.
swc_get_property req_user 'ApprovalCurrency' ls_appr_lim-currency.
Regards,
PR.
Hi Ahmed,
To fetch PO details in the workflow you can use business obejct BUS2012.
If BUS2012 event is the triggering event for your workflow then you can directly access the info using binding.
Else you can use an Fm to fetch PO details in the workflow.
Please specify which approach are you using so that a more suitable answer could be provided.
Regards,
Saumya
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I request you to please provide the solution it is very urgen.
Regards
Ahmed
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.