대여 계약 생성에 사용되는 완전히 사용자 지정된 SAP 화면이 있습니다. 세금/관할 구역이 도움말/대화 상자 (즉, F4 버튼) 옵션을 사용하여 선택되면 편집 할 수없는 주 및 카운티 세금 필드가 채워집니다. 이 두 필드는 사용자가 실제 주와 카운티에 대한 세금 관할권을 확인할 수 있도록 표시하기위한 것입니다.SAP 흐름 화면이 업데이트되지 않는 로직
전체 화면의 모든 필드가 유효하도록하려면 프로그램은 아래와 같이 PAI 필드 연결을 사용합니다. 문제는 세금 관할 구역에 새 값을 직접 입력하고 Enter 키를 누르면 체인의 다른 모든 필드도 유효하지 않으면 주와 카운티가 업데이트되지 않는다는 것입니다.
아래의 다른 필드 중 하나가 유효하지 않은 경우를 제외하고 수동으로 기능 모듈 DYNP_VALUES_UPDATE
을 사용하여 수동으로 상태 및 카운티 필드를 업데이트해야합니다. 체인의 다른 필드 중 하나가 유효하지 않은 경우에도 화면에서 상태 필드와 카운티 필드를 강제로 업데이트 할 수 있습니까? 나는 이것이 단순히 불가능하다고 생각하기 시작했습니다.
세금 관할 필드는 아래는 내가 처음에 F4 옵션을 사용하여 세금 관할 구역 코드를 제공 할 때 화면을 보여주는 스크린 샷입니다 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
이라고합니다. 주, 카운티 및시뿐만 아니라 해당 세금이 업데이트됩니다. 다음을 누르면
나는 새 값을 입력하여 수동으로 세금 관할 구역을 변경 한 아래 이미지에서를 누릅니다. 주, 카운티 및시뿐만 아니라 해당 세금은 동일하게 유지됩니다. 완전히 다른 값으로 업데이트해야하지만 CHAIN
문제 (즉, 필드가 유효하지 않은 상태이므로 화면 업데이트가 발생하지 않음)로 인해 나타나지 않아야합니다.
발생한 문제를 시각적으로 설명하는 스크린 샷을 게시 할 수 있습니까? dynpros를 사용하는 것은 화면 화가가 필요하기 때문에 ABAP 코드에서 쉽게 재생산 할 수 없다는 것입니다. – Jagger
* MINIMAL * 작업 예제를 제공하면 도움이되는 대답을 얻을 가능성이 훨씬 더 높습니다. 절반의 코드를 버리는 것만으로도 적어도 나를 연구 할만큼 흥미롭게 만들지는 않을 것입니다. – vwegert
@vwegert는 톤 단위로 코드의 무게를 측정 할 수 있음을 깨닫지 못했습니다. 감사. –