日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

SAP-检查多个关联字段输入,以及有条件地调用模块

發(fā)布時(shí)間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP-检查多个关联字段输入,以及有条件地调用模块 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
有時(shí)想作為一組檢查幾個(gè)字段。為此,請(qǐng)?jiān)?FIELD 語(yǔ)句中包含這些字段,并將它們放入?CHAIN-ENDCHAIN 塊中。在示例事務(wù) TZ31 中使用了 CHAIN 語(yǔ)句: **** Screen flow logic: **** CHAIN. FIELD: SPFLI-CARRID, SPFLI-CONNID. ??MODULE CHECK_FLIGHT. ENDCHAIN. **** ABAP/4 module: **** MODULE CHECK_FLIGHT INPUT. SELECT SINGLE * FROM ?SPFLI WHERE CARRID = SPFLI-CARRID AND CONNID = SPFLI-CONNID. IF SY-SUBRC NE 0. ??MESSAGE E005 WITH SPFLI-CARRID SPFLI-CONNID. ENDIF. ENDMODULE? 在鏈塊中,所有字段相互依賴。鏈內(nèi)發(fā)現(xiàn)錯(cuò)誤時(shí),會(huì)重新顯示屏幕,并允許輸出鏈中任何地方發(fā)現(xiàn)的字段,但仍不允許輸入任何非鏈字段。在用戶重新輸入值(輸入到鏈字段之一)之后,重新啟動(dòng) PAI 并將鏈中的所有語(yǔ)句作為一個(gè)單元重新執(zhí)行。鏈可以包括其它任何允許的流邏輯語(yǔ)言語(yǔ)句。而且,鏈可以包含多條 FIELD語(yǔ)句。一般情況下,所有FIELD語(yǔ)句應(yīng)出現(xiàn)在 CHAIN 塊的開(kāi)始處。 CHAIN.? FIELD: A, B, C. FIELD: D, E, F. MODULE X. MODULE Y. ENDCHAIN. 允許將 MODULE 語(yǔ)句添加到包含在 CHAIN 塊中的 FIELD 語(yǔ)句中,但這樣實(shí)際上并沒(méi)有意義: CHAIN. FIELD F1. FIELD: F2, F3 ?MODULE m1. "( 在 F3后無(wú)周 期) MODULE m2. ENDCHAIN. 如果模塊 m 發(fā)現(xiàn)錯(cuò)誤,則在重新顯示時(shí)它打開(kāi)所有要輸入的鏈字段,而不只是 F2 和 F3。只有當(dāng)使用 AT- 或 ON- 條件之一時(shí) ,用該方式使用 FIELD...MODULE 才意義。可以在模塊調(diào)用(從屏幕流邏輯)中設(shè)置條件。例如可以指定某模塊只在給定字段具有值(非初始值)時(shí)才被調(diào)用: FIELD X MODULE CHECK_FIELDX ON INPUT. 使用 FIELD 語(yǔ)句的條件形式,可以防止不必要的模塊調(diào)用。尤其當(dāng)更新表輸入時(shí),條件調(diào)用可以極大地提高性能。有關(guān)信息在下列主題中提供: ☆條件 FIELD 語(yǔ)句 添加 ON- 和 AT- 條件之后,FIELD...MODULE 流邏輯語(yǔ)句就變成了條件語(yǔ)句。請(qǐng)使用以下條件指定何時(shí) 應(yīng)調(diào)用模塊 : ON INPUT 只有當(dāng)字段包含初始值以外的值時(shí),才調(diào)用ABAP/4模塊。此初始值由該字段的數(shù)據(jù)類型決定:空格對(duì)應(yīng)于字符字段,零對(duì)應(yīng)于數(shù)字字段。如果用戶將字段值更改回初始值,則 ON INPUT不觸發(fā)調(diào)用。(與 ON REQUEST 調(diào)用相比,此時(shí)它不觸發(fā)調(diào)用。) ON REQUEST 只有自上一屏幕顯示以來(lái)用戶已輸入字段值時(shí),才調(diào)用 ABAP/4模塊。即使用戶鍵入已存在的值,值也象已變化了一樣予以記數(shù)。 一般地,通過(guò)任何形式的“手工輸入”都可以觸發(fā) ON REQUEST 條件。系統(tǒng)將設(shè)置字段的下列方式 作為手工輸入: - 實(shí)際用戶輸入 - SET PARAMETER 字段輸入(手工和自動(dòng)兩種) - HOLD DATA 字段輸入 - 用于參數(shù)事務(wù)的參數(shù)輸入(CALL TRANSACTION...USING) - 用于定制系統(tǒng)的全局字段(這些為某些字段指定自動(dòng)設(shè)置) 所有這些符合 ON REQUEST 條件并將觸發(fā)模塊調(diào)用 。 ON *-INPUT 如果用戶在字段的首字符中已經(jīng)輸入“*”,并且該字段在屏幕制作器中具有屬性 *-entry,則調(diào)用 ABAP/4 模塊??梢栽谙胫粰z查某些輸入類型的例外情況下使用該選項(xiàng)。有些條件只適用于 FIELD 語(yǔ)句,而其它條件則適用于 CHAIN 塊中的 FIELD 語(yǔ)句。尤其是,ON- 和 AT- 條件在包含多字段但又未包含在 CHAIN 塊中的 FIELD 語(yǔ)句中有特殊意義,
☆條件 CHAIN 語(yǔ)句 要在條件 CHAIN 中調(diào)用模塊,有兩個(gè)選 項(xiàng): ON CHAIN-INPUT 類似于 ON INPUT。如果鏈中的任一字段包含初始值(空值或零)以外的值,則調(diào)用ABAP/4模塊。 ON CHAIN-REQUEST 該條件功能類似于 ON REQUEST,但是如果鏈中的任一字段的值發(fā)生更改,則調(diào)用ABAP/4模 塊。 例如: CHAIN.? FIELD: A, B, C. FIELD: D, E, F. MODULE X ON CHAIN-INPUT. MODULE Y. ENDCHAIN. 在此,如果字段A、B、C、D、E、F中任何一個(gè)具有不同于初始值的值,則調(diào)用模塊 X 。而始終調(diào)用模塊Y。如果Y發(fā)現(xiàn)錯(cuò)誤,則在錯(cuò)誤對(duì)話期間,重新打開(kāi)這六個(gè)字段并等待輸入。?要將條件限制到特定字段,請(qǐng)將 MODULE 語(yǔ)句連接到相關(guān) FIELD 語(yǔ)句。 CHAIN.? FIELD: A, B, C ?MODULE X ON INPUT. ENDCHAIN. 在該示例子中,只有當(dāng)列表(C)中的最后字段包含非初始值的值時(shí),才調(diào)用模塊X。但是,如果 X 發(fā)現(xiàn)錯(cuò)誤,則在錯(cuò)誤對(duì)話框中重新打開(kāi)這三個(gè)字段(A,B,C)并等待輸入。有時(shí)想要的調(diào)用只取決于幾個(gè)字段,而不是其它字段。為明確起見(jiàn),將正在使用的鏈斷開(kāi)并為獨(dú)立字段組合創(chuàng)建獨(dú)立鏈?zhǔn)亲詈?jiǎn)單的。在每種情況下,都使用 ON CHAIN-INPUT 或 ON CHAIN-REQUEST。 例如: CHAIN.? FIELD: A, B, C ?MODULE X ON CHAIN-REQUEST. ENDCHAIN. CHAIN.? FIELD: A, B, D, E ?MODULE Y ON CHAIN-REQUEST. ENDCHAIN.

總結(jié)

以上是生活随笔為你收集整理的SAP-检查多个关联字段输入,以及有条件地调用模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。