乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      SAP Memory & ABAP Memory

       一騎當(dāng)千_30 2019-01-11

      以前做enhancement的時候用過parameter id 和 memory id, 但很多其他語法用法我是沒接觸過的, 今天看了Palm同鞋做的文檔SAP Memory & ABAP Memory, 做了一些測試, 本文幾乎所有內(nèi)容來自Palm同鞋的文檔.


      1、先弄清External Session 和Internal Session區(qū)別:

      External Session:

      當(dāng)user登陸SAP后, 就開啟了一個userlogon session。當(dāng)user退出所有sap window, 就結(jié)束了這個user logon session。一個userlogon session最多有6個external session(即main session,對應(yīng)有6個窗口).

      Internal Session:

      在一個external session內(nèi)調(diào)用其它程序?qū)尚碌膇nternal session, 比如call FM, call transaction或是submit*** and return等方式。 當(dāng)關(guān)掉這個external session時,也就結(jié)束了external session下的所有internal session。一個External session最多有20個Internal session.

      對于上面這幾個session之間的關(guān)系可以這么簡單概括:User session > external session > internal session。


      SAP memory類似于全局變量,用于Externalsession間的通信,不同的externalsession都可以訪問,當(dāng)退出userlogon session時將清空SAPmemory(不同user對應(yīng)的SAPmemory不同)。


      ABAP memory類似于局部變量,用于同一externalsession下internalsession間的通信,不同的externalsession有不同的ABAPmemory,同一個externalsession里的internalsession只能訪問相應(yīng)session的ABAP memory。


      2、網(wǎng)上寫的兩者幾個不同點:

      1. 使用的語句不同

      SAP memory使用SET/GET parameters;

      SPA:SET PARAMETER ID 'MAT' FIELD p_matnr.
      GPA:GET PARAMETER ID 'MAT' FIELD p_matnr.

      ABAP Memory使用EXPORT 和IMPORT :

      EXPORT p_matnr = p_matnr TO MEMORY ID 'ZTESTMAT'.
      EXPORT p_matnr = p_matnr FROM MEMORY ID 'ZTESTMAT'

      FREE MEMORY ID 'ZTESTMAT'.                     清空指定的ABAPmemory

      FREE MEMORY.                                               清空externalsession內(nèi)的所有ABAPmemory

      3、共享范圍不同

      SAP memory用于所有external session間,ABAP memory用于同一個external session的internal session間。

      4、作用范圍不同(就是生存期)

      SAP memory在登陸到退出這期間一直有效。

      ABAP memory只在同一個session(window) 內(nèi)有效。


      3、SAP Memory:

      1. 給SAP Memory賦值

      創(chuàng)建程序ZTEST_SET_SAP_MMR給‘SAP_MMR'賦值'12345'.

      2.獲取SAP Memory 的值并顯示在選擇屏幕上

      創(chuàng)建另一個程序ZTEST_GET_SAP_MMR,并為PR_TEST指定Memory ID ,這樣SAP_MMR的值將會作為默認值顯示在selection screen上。



      運行結(jié)果,默認值顯示在屏幕上:


      因為field與SAP Memory綁定了,在selection screen上如果修改對應(yīng)的值,比如將'12345'改成'123'后按F8,也將修到SAP memory的值.重新運行程序如下:



      3. Dialog獲取SAPMemory方式

      在dialog 屏幕上建一個input field, 然后Parameter ID屬性與'SAP_MMR'綁定,并打上2個勾。

      Set Parameter: 允許將屏幕值返回給SAP Memory (類似于執(zhí)行SET PARAMETER ID語句)

      Get Parameter: 允許讀取SAP Memory的值并默認顯示(類似于執(zhí)行GET PARAMETER ID語句).


      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客

      在程序里聲明該變量:

      給程序創(chuàng)建一個T-code

      運行結(jié)果(勾上set parameter后,當(dāng)修改屏幕上的數(shù)值時也會反映到SAP memory里):


      備注:在Data Element里有一個地方可以填Parameter ID(這個方法好無聊,但SAP可能為了規(guī)范參照同一data element的parameter ID,就用了這方法....我只想到這用法,這優(yōu)點).

      創(chuàng)建一個Data Element,并創(chuàng)建一個Parameter ID(存在表TPARA里,以Z或Y打頭):

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客

      綁定給table或structure:

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客

      在Dialog里輸入table-field名字時,會提示是否參照Dictionary.

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客

      選是了后會自動帶出Parameter ID.

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客

      此時需要勾上Set Parameter和Get Parameter并在代碼里聲明ZTESTTEST才有效.



      4. 通過Get parameter ID語句獲取SAP memory的值,并賦給LV_TEST



      如果SET Parameter ID后退出所有sessions,SAP memory將被清空,重新登陸Get Parameter ID將取到空值。

      如果SET Parameter ID后其它user用Get Parameter ID也取不到相應(yīng)的值。


      5. TCODE SU3設(shè)置PARAMETER ID

      在TCODE SU3設(shè)置了PARAMETER ID后, 運行語句GET PARAMETER ID 后就能讀到設(shè)置的相關(guān)PARAMETER ID的值. 它的功能相當(dāng)于SET PARAMETER ID.

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客


      4、ABAP Memory:

      1.建了個程序和FM:

      將數(shù)據(jù)丟到ABAP內(nèi)存'ABAP_MMR',被調(diào)用的FM是在internal session內(nèi)運行(或是用submit和call transaction)。

      程序代碼:(類的方法里不能使用這種語法,只能用下面的第二、三種)

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客

      FM代碼:

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客

      運行結(jié)果,F(xiàn)M里可以取到ABAP memory的值。



      在程序里取'ABAP_MMR'的值,調(diào)用同一個FM取值。

      代碼:

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客

      如果跑完第一步的程序后不關(guān)閉窗口再跑這個程序,那么可以成功讀到LV_TEST的值。

      程序:


      FM:


      如果跑第一步的程序后用另一窗口(external session)跑第二步程序,將讀取不到數(shù)值。

      運行結(jié)果:

      程序:


      FM:

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客


      3.如果export和import的參數(shù)名字不同,則需要指定對應(yīng)參數(shù)名(很糾結(jié)的,被賦值的Lv_test_2要放在 = 右邊,但用 to的話會比較直觀)。

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客

      結(jié)果:



      4. Export多個數(shù)據(jù)放到ABAP memory里。

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客

      結(jié)果:

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客


      5. Free Memory:會清空該external session內(nèi)所有的ABAP Memory.

      程序:ZTEST_SET_ABAP_MMR_4

      用了Free Memory ID后'ABAP_MMR_1'和'ABAP_MMR_2'都為空,無法用import取值.

      SAP Memory  ABAP Memory  - Jinyueting.it - jinyueting.it博客


      6. Free Memory ID: 清空指定ABAP Memory ID的內(nèi)容, 其它的ID不受影響.

      用了FREE MEMORY ID 'ABAP_MMR_3'.后, 'ABAP_MMR_3'的數(shù)據(jù)將被清空,無法取值,但'ABAP_MMR_4'不受影響,可以取到LV_TEST的值(放在LV_TEST_5里).


      如果將多個變量一直放在同一ID內(nèi), 如果用了Free Memory 或是Free Memory ID(指定這個ID),那這個ID內(nèi)的所有變量將被全部清空.


      網(wǎng)上還說到另外兩種傳輸方式.

      Share Memory 或Share Buffer 用于不同用戶間的數(shù)據(jù)傳遞.

      當(dāng)使用DELETE FROM SHARED BUFFER 語句或是服務(wù)器關(guān)閉后該內(nèi)存才會被清空.


      使用TOSHARED BUFFER要用FROMSHARED BUFFER取值.

      使用TOSHARED MEMORY要用FROMSHARED MEMORY取值.



      語法和普通MEMORY ID是一樣的


      Database  將數(shù)據(jù)存進表里, 就算服務(wù)器關(guān)了數(shù)據(jù)還存在.


      表INDX會多一條記錄.



      讀取數(shù)據(jù):



      語法和普通MEMORY ID是一樣的


      關(guān)于這個memory id, database還有一些細節(jié)可以參考老白的博客

      轉(zhuǎn)自:http://jinyueting.it.blog.163.com/blog/static/50938665201302202150368/

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章