我有一個完全定製的SAP屏幕用於創建租賃協議。當使用幫助/對話框(即F4按鈕)選項選擇稅收管轄區時,會導致填寫不可編輯的州和縣稅務字段。這兩個字段是嚴格顯示的,以便用戶可以根據實際州和縣驗證其稅收管轄權。SAP流程邏輯導致屏幕不更新
爲確保整個屏幕上的所有字段都有效,程序使用PAI字段鏈接,如下所示。問題是,如果我在稅務管理區域手動輸入新值並按回車鍵,則除非鏈中的所有其他字段也有效,否則狀態和縣不會更新。
我手動強制使用功能模塊DYNP_VALUES_UPDATE
更新州和縣字段,除非下列其中一個字段無效,否則效果很好。即使鏈條中的其他字段無效,我如何強制州和縣字段在屏幕上更新?我開始認爲這根本不可能。
的稅收管轄權場被稱爲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
UPDATE 下面是截圖,顯示畫面時,我最初提供使用F4選項的稅收轄區代碼。請注意,州,縣和城市以及相應的稅收都會更新。
在下面的圖像I通過提供一個新的值輸入手動改變稅務管轄,接着按回車。請注意,州,縣和市以及相應的稅收保持不變。它們應該更新爲完全不同的值,但由於CHAIN
問題(即屏幕更新不會發生,因爲字段處於無效狀態),似乎沒有這樣做。
您還可以發佈一些屏幕截圖來直觀地描述您遇到的問題。與dynpros的事情是,他們是不容易從ABAP代碼複製,因爲屏幕畫家是必要的。 – Jagger
如果您提供* MINIMAL *工作示例,那麼您很可能會得到有用的答案。至少對我而言,僅僅傾銷半噸代碼就不太可能使這個研究有趣。 – vwegert
@vwegert沒有意識到你可以用噸來衡量代碼。謝謝。 –