workflow - 如何在工作流收件箱中获取更新的 HTML 单选按钮?
问题描述
由于我对工作流程很陌生,现在我一直在思考如何在单击决策按钮时获取工作流程收件箱中 HTML 表格的更新单选按钮。
STEP 1:在HTML表格中,用户可以通过勾选单选批准或拒绝WBS
第 2 步:当用户单击确认时,工作流将更新表中显示的每个 WBS 的状态。
问题:在第 2 步 - 我如何获得由用户操作更新的 HTML 文本。
现在我已经增强了 SAPEVENTS 并使用 'SAP_WAPI_READ_CONTAINER' 来获取 HTML 容器。
但是,在检查 HTML 代码后,HTML 表不会更新为用户操作。
解决方案
这是一个演示如何获取单选按钮值的最小程序。如果用户在第一行按下 Approve 并在第二行按下 Reject,并按下按钮 Confirm,该方法on_sapevent
将获得group[1]=approve&group[2]=reject
.
(适用于 ABAP 7.40 SP8 之类的东西)
REPORT zdemo.
CLASS lcl_app DEFINITION.
PUBLIC SECTION.
METHODS at_selection_screen_output.
METHODS on_sapevent FOR EVENT sapevent OF cl_gui_html_viewer
IMPORTING action frame getdata postdata query_table.
PRIVATE SECTION.
DATA o_html TYPE REF TO cl_gui_html_viewer.
ENDCLASS.
CLASS lcl_app IMPLEMENTATION.
METHOD at_selection_screen_output.
DATA: l_url TYPE cndp_url,
l_text TYPE string.
IF o_html IS NOT BOUND.
l_text = '<body><form id="form" method="POST" action="SAPEVENT:submit">'
&& REDUCE string( INIT t = `` FOR I = 1 WHILE i <= 2
NEXT t = t && |<div><fieldset id="group{ i }">|
&& |<input type="radio" value="approve" name="group[{ i }]"> Approve |
&& |<input type="radio" value="reject" name="group[{ i }]"> Reject|
&& |</fieldset></div>| )
&& '<p><button type= "submit">Confirm</button></p>'
&& '</form></body>'.
o_html = NEW #( parent = cl_gui_container=>screen0 ).
SET HANDLER on_sapevent FOR o_html.
o_html->set_registered_events( events = value #( ( eventid = o_html->m_id_sapevent ) ) ).
DATA(lt_text) = cl_bcs_convert=>string_to_soli( l_text ).
o_html->load_data(
EXPORTING type = 'text' subtype = 'html' size = strlen( l_text )
IMPORTING assigned_url = l_url
CHANGING data_table = lt_text ).
o_html->show_url( EXPORTING url = l_url ).
ENDIF.
ENDMETHOD.
METHOD on_sapevent.
CONCATENATE LINES OF postdata INTO data(l_post_data) RESPECTING BLANKS.
MESSAGE l_post_data TYPE 'I'.
ENDMETHOD.
ENDCLASS.
PARAMETERS dummy.
DATA go_app TYPE REF TO lcl_app.
LOAD-OF-PROGRAM.
CREATE OBJECT go_app.
AT SELECTION-SCREEN OUTPUT.
go_app->at_selection_screen_output( ).
推荐阅读
- sql - SQL Upsert DO Update 不更新记录
- flutter - Flutter web 升级到 2.5.2 后卡在热重启
- php - TCPDF 错误:无法获取图像的大小
- node.js - Mongoose 在结果的 _id 字段中返回“new ObjectId”
- input - 如何获取正确输入值的列表
- reactjs - 如何在自定义挂钩上使用备忘录(或:如何仅在屏幕上加载内容)
- gradle - 无法设置 cwd()(错误 2:没有这样的文件或目录)om Mac OS 12
- java - 如何使用 Java (jdbc) 连接到远程 MySQL 数据库?
- r - getSymbols 没有获取最新数据
- haskell - 在 Haskell 中为 Monad-Transformers 实现 liftIO 风格的提升