因此,我正在为SAP GRC的电子邮件变量编码。直到我遇到了意外的障碍。我的问题是,访问T代码SOST时,但在调试中检查email变量的值时,电子邮件变量中缺少字段。该值是完整的。例如。
Z_CNTL_AR_LINK_APPROVE_REJECT-电子邮件变量
调试值:reqno = 2117
SOST中的值:reqno =
您可以看到,即使在调试中,SOST中reqno的值也消失了。这怎么发生的?
起初,我认为这只是一个数据类型问题。但是我已经尝试了多种数据类型,但仍然无法解决问题。
SELECT req_id
FROM gracrequser
INTO TABLE @DATA(lt_reqid2)
WHERE userid = @lv_mit_userid.
IF sy-subrc = 0.
lt_accreq2 = VALUE #( FOR ls_reqid2 IN lt_reqid2
( accreq = |ACCREQ/{ ls_reqid2-req_id }| ) ).
SELECT external_key_dis,
external_key
FROM grfnmwrtinst
INTO TABLE @DATA(lt_key2)
FOR ALL ENTRIES IN @lt_accreq2
WHERE external_key = @lt_accreq2-accreq
AND approval_status = 'PENDING'.
IF sy-subrc = 0.
lv_z_reqno21_2 = lt_key2[ 1 ]-external_key_dis.
lv_request_id2 = lt_key2[ 1 ]-external_key.
ENDIF.
ENDIF.
SPLIT lv_request_id2 AT '/' INTO DATA(lv_entity2) DATA(lv_reqid2).
lv_objid2 = lv_reqid2.
lv_reqno2 = lv_z_reqno21_2.
lv_clnt2 = sy-mandt.
WHEN 'Z_CNTL_AR_LINK_APPROVE_REJECT'.
CONCATENATE lc_objid lv_objid2 INTO DATA(lv_objectid2).
CONCATENATE lc_reqno lv_reqno2 INTO DATA(lv_reqnum2).
CONCATENATE lc_reqno lv_reqno2 INTO lv_reqnum2.
CONCATENATE lc_clnt lv_clnt2 INTO DATA(lv_client).
CALL METHOD cl_wd_utilities=>construct_wd_url
EXPORTING
application_name = 'GRAC_OIF_REQUEST_APPROVAL'
in_protocol = 'HTTPS'
IMPORTING
out_absolute_url = lv_url_string. "url
CONCATENATE lv_url_string lc_qmark INTO DATA(lv_url2).
CONCATENATE lv_url2 lv_objectid2 lv_reqnum2 lv_client INTO lv_req_link2 SEPARATED BY '&'.
CONCATENATE lv_req_link2 ls_varsout-variable_value INTO ls_varsout-variable_value.
APPEND ls_varsout TO lt_varsout.
我的预期输出是SOST中显示的值。例如:
reqno=2117
实际结果示例:
reqno=
那是实际结果。即使在调试模式下检查时,2117也不见了。