Abap SAP流逻辑导致屏幕不更新
我有一个完全定制的SAP屏幕,用于创建租赁协议。当使用帮助/对话框(即F4按钮)选项选择税务管辖区时,将填充不可编辑的州和县税务字段。这两个字段严格用于显示,以便用户可以根据实际的州和县验证其税务管辖权 为了确保整个屏幕上的所有字段都有效,程序使用PAI字段链接,如下所示。问题是,如果我在税务管辖区字段中手动输入新值并按enter键,则除非链中的所有其他字段也有效,否则州和县不会更新 我使用功能模块Abap SAP流逻辑导致屏幕不更新,abap,dynpro,Abap,Dynpro,我有一个完全定制的SAP屏幕,用于创建租赁协议。当使用帮助/对话框(即F4按钮)选项选择税务管辖区时,将填充不可编辑的州和县税务字段。这两个字段严格用于显示,以便用户可以根据实际的州和县验证其税务管辖权 为了确保整个屏幕上的所有字段都有效,程序使用PAI字段链接,如下所示。问题是,如果我在税务管辖区字段中手动输入新值并按enter键,则除非链中的所有其他字段也有效,否则州和县不会更新 我使用功能模块DYNP\u VALUES\u UPDATE手动强制更新state和country字段,这非常有效
DYNP\u VALUES\u UPDATE
手动强制更新state和country字段,这非常有效,除非下面的其他字段之一无效。即使链中的其他字段之一无效,如何强制在屏幕上更新州和县字段?我开始觉得这根本不可能
税务管辖区字段称为kna1 txjcd
PROCESS BEFORE OUTPUT.
MODULE status_0100.
MODULE setup_defaults.
MODULE screen_modify.
MODULE ltext_add_comments_0100.
PROCESS AFTER INPUT.
MODULE cancel AT EXIT-COMMAND.
MODULE user_command_0100.
FIELD t001-bukrs MODULE check_sales_org. "DV1K933404
FIELD kna1-j_3gagext
MODULE check_customer_sales_area.
CHAIN.
FIELD: kna1-j_3gagext
MODULE check_cust_num.
MODULE verify_recipient. "DV1K935780
FIELD: zsd_etm_contract-bill_to_party
MODULE check_bill_to_party.
FIELD zsd_etm_contract-payer
MODULE check_payer_number. "CHG12588
ENDCHAIN.
CHAIN.
FIELD: kna1-txjcd
MODULE check_txjcd. "DV1K933404
FIELD: zsd_etm_contract-rig_num,
zsd_etm_contract-ship_via.
FIELD zsd_etm_contract-well_name.
FIELD:
zdls_ls, zdls_sc, zdls_twp, zdls_rg, zdls_m.
FIELD: znts_qtr_unit, znts_unit, znts_block,
znts_map.
FIELD: zlsd_other.
MODULE check_lsd_num .
FIELD: zsd_etm_contract-contact_tel_num,
zsd_etm_contract-cus_rep_loc,
zsd_etm_contract-cus_rep_tel_num,
zsd_etm_contract-cus_rep_fax_num,
zsd_etm_contract-cus_rep_email, "dv1k931160
zsd_etm_contract-lrg_contract, "DV1K935629
t001-bukrs, "DV1K935752
zsd_etm_contract-lrg_camp, "DV1K935752
zsd_etm_contract-customer_contact. "DV1K931062
FIELD:
zsd_etm_contract-cus_rep_loc
MODULE check_cus_rep_loc,
zsd_etm_contract-afe,
zsd_etm_contract-po,
zsd_etm_contract-msa,
zsd_etm_contract-cost_center,
zsd_etm_contract-gl
MODULE check_afe_po_msa_num,
zsd_etm_contract-invoice_approval
MODULE check_invoice_approval,
zsd_etm_contract-usage_type
MODULE check_usage_type.
FIELD: zsd_etm_contract-lrg_contract, "DV1K935629
t001-bukrs, "DV1K935752
zsd_etm_contract-lrg_camp. "DV1K935752
MODULE check_lrg_entries. "DV1K935752
FIELD:
zsd_etm_contract-prl_rep
MODULE check_prl_rep,
zsd_etm_contract-branch
MODULE check_branch,
zsd_etm_contract-bill_region, t001-bukrs
MODULE check_bill_region,
zsd_etm_contract-eoj_bill
MODULE check_eoj_bill,
zsd_etm_contract-sd_shd_flag,
zsd_etm_contract-next_set_date
MODULE check_next_set_date,
zsd_etm_contract-audit_flag,
zsd_etm_contract-ratetype. " CHG13225 DV1K939527
ENDCHAIN.
CHAIN.
FIELD: zsd_etm_contract-usage_type,
zsd_etm_contract-well_type.
MODULE check_well_type.
ENDCHAIN.
FIELD zsd_etm_contract-well_type.
MODULE get_well_type_text.
FIELD zsd_etm_contract-unit_num MODULE check_unit_num.
CHAIN.
FIELD: zsd_etm_contract-afe,
zsd_etm_contract-po,
zsd_etm_contract-msa,
zsd_etm_contract-gl.
MODULE combine_fields.
ENDCHAIN.
MODULE fill_wa_etm_contract.
MODULE check_ltext.
MODULE user_command_create_0100.
PROCESS ON VALUE-REQUEST.
FIELD: kna1-txjcd
MODULE help_txjcd,
zsd_etm_contract-prl_rep
MODULE help_prel_rep,
zsd_etm_contract-bill_to_party
MODULE help_bill_to_party.
FIELD: zsd_etm_contract-payer
MODULE help_payer.
FIELD: zsd_etm_contract-ratetype " CHG13225 DV1K939527
MODULE help_ratetype. " CHG13225 DV1K939527
更新
下面是我最初使用F4选项提供税务管辖区代码时显示的屏幕截图。请注意,州、县、市以及相应的税费都已更新
在下图中,我通过键入新值,然后按ENTER键手动更改了税务管辖区。请注意,州、县、市以及相应的税收保持不变。它们应该已更新为完全不同的值,但由于链
问题(即,由于字段处于无效状态,因此不会发生屏幕更新),因此不会出现这样的情况
您可以使用调用函数“DYNP\u VALUES\u UPDATE”对屏幕进行“黑客攻击”
重新考虑何时以及如何抛出错误。
避免现场模块对链模块的问题。
例如,在所有字段模块和链模块之后发出错误,您是否也可以发布一些屏幕截图,直观地描述您遇到的问题。dynpros的问题是,从ABAP代码中复制它们并不是那么容易,因为需要屏幕画师。如果您提供一个最小的工作示例,您很可能会得到一个有用的答案。至少对我来说,仅仅扔掉半吨代码不太可能使研究变得足够有趣。@vwegert没有意识到你可以用吨来衡量代码。谢谢。@vwegert在谈到SAP中的屏幕时,编写一个简单的示例非常困难。我会包括布局的截图吗?请在您的评论中提供一些建设性的内容,而不要只是胡说八道。@MichaelFreake侮辱他人肯定会扼杀最后一点兴趣。-1这家伙在他的问题中提到了这个功能模块,所以我不理解为什么您将其作为答案发布……这就是为什么当出现错误时您会重新考虑,所以PAI和PBO运行。在没有黑客攻击的情况下尝试,仅在连接到OKCODE的PAI中发出错误。我喜欢你解释否决票的原因。礼貌是值得赞赏的。然后写下应该删除对函数
DYNP\u VALUES\u UPDATE
的调用。第一句话有点模棱两可,你不觉得吗。我把“你可以”破解“理解为“尝试破解它…。@philsoady感谢Phil,但Jagger是正确的。对DYNP\u VALUES\u UPDATE
的调用被忽略。