地址 :
https://oaqas.lingyiitech.com:9800/auth-api/openapi/dingtalk-oa/topapi/message/corpconversation/asyncsend_v2?token=40216bf0ceea8e56b778d537b20f5d23
https://oaqas.lingyiitech.com:9800/auth-api/openapi/dingtalk-oa/topapi/message/corpconversation/asyncsend_v2
?token=
40216bf0ceea8e56b778d537b20f5d23
每次动态获取
获取Token
DATA : lv_password TYPE string .
DATA : lv_password2 TYPE string .
lv_password = |{ gs_data-uname }:{ gs_data-passw }| .
CONDENSE lv_password NO-GAPS .
lv_password2 = cl_http_utility=>encode_base64( lv_password ) .
lv_password2 = |Basic { lv_password2 } | .
gs_head-url = gs_data-zurl .
gs_head-password = lv_password2 .
gs_head-zmbid = gs_data-zmbid .
TYPES:BEGIN OF ty_return_msg,
success TYPE string,
msg TYPE string,
code TYPE string,
END OF ty_return_msg.
DATA: ls_data TYPE ztplm054b,
lt_data TYPE TABLE OF ztplm054b.
DATA:lv_url TYPE string,
lr_http_client TYPE REF TO if_http_client,
lt_form_fields TYPE tihttpnvp,
ls_form_fields LIKE LINE OF lt_form_fields,
lv_result TYPE string,
lr_result TYPE REF TO data,
ls_return_msg TYPE ty_return_msg.
CLEAR:lv_url,lr_http_client,lt_form_fields,ls_form_fields,lv_result,lr_result,ls_return_msg .
cl_http_client=>create_by_url(
EXPORTING
url = gs_head-url
IMPORTING
client = lr_http_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4 ) .
lr_http_client->propertytype_logon_popup = lr_http_client->co_disabled.
*&—header
lr_http_client->request->set_header_field(
EXPORTING
name = ‘Authorization’
- value = ‘Basic cmVzdDoxMjM0NTY3OA==’
value = gs_head-password
).
lr_http_client->request->set_method( ‘POST’ ) .
**** Get Forms
PERFORM frm_get_forms TABLES it_data .
lr_http_client->request->set_form_fields(
EXPORTING
fields = gt_form_fields
) .
lr_http_client->send(
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2 ).
lr_http_client->receive(
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3 ) .
lv_result = lr_http_client->response->get_cdata( ).
CALL METHOD lr_http_client->close .
*&—解析PM返回的数据
/ui2/cl_json=>deserialize(
EXPORTING
json = lv_result
CHANGING
data = lr_result
).
IF strlen( lv_result ) = 32 .
IF it_data[] IS NOT INITIAL .
SELECT * INTO TABLE lt_data FROM ztplm054b
FOR ALL ENTRIES IN it_data
WHERE zkhxmdh = it_data-zkhxmdh
AND zcustomer = it_data-zcustomer .
ENDIF.
CLEAR : ls_data .
ls_data-zstatus = '20' .
ls_data-zernam2 = sy-uname .
ls_data-zdate2 = sy-datum .
ls_data-zuzeit = sy-uzeit .
ls_data-msgid = lv_result .
MODIFY lt_data FROM ls_data TRANSPORTING zstatus zernam2 zdate2 msgid zuzeit
WHERE zkhxmdh IS NOT INITIAL OR zcustomer IS NOT INITIAL .
MODIFY ztplm054b FROM TABLE lt_data .
COMMIT WORK AND WAIT .
IF sy-subrc = 0 .
MESSAGE s000(su) WITH '发送成功!' .
ENDIF.
ELSE .
IF lr_result IS BOUND.
*** success msg code
ASSIGN lr_result->* TO FIELD-SYMBOL(<fs_out>).
IF <fs_out> IS ASSIGNED.
ASSIGN COMPONENT 'success' OF STRUCTURE <fs_out> TO FIELD-SYMBOL(<fs_success>).
ASSIGN COMPONENT 'msg' OF STRUCTURE <fs_out> TO FIELD-SYMBOL(<fs_msg>).
ASSIGN COMPONENT 'code' OF STRUCTURE <fs_out> TO FIELD-SYMBOL(<code>).
ENDIF.
IF <fs_success> IS ASSIGNED.
ASSIGN <fs_success>->* TO FIELD-SYMBOL(<fs_access_token>).
IF <fs_access_token> IS ASSIGNED.
ls_return_msg-success = <fs_access_token>.
ENDIF.
ENDIF.
IF <fs_msg> IS ASSIGNED.
ASSIGN <fs_success>->* TO FIELD-SYMBOL(<fs_access_msg>).
IF <fs_access_msg> IS ASSIGNED.
ls_return_msg-msg = <fs_access_msg> .
ENDIF.
ENDIF.
MESSAGE s000(su) WITH '发送失败:' && ls_return_msg-msg .
ENDIF.
ENDIF.