2010年9月17日

從BSEG找COPA特性值

友人提問,從FI doc上面要怎麼找到COPA的特性值?

從上圖可以看到FB03直接可查到COPA的特性值,找BSEG只能找到FIELD PAOBJNR,原來COPA的table和img有關,可用CE4*_ACCT在SE11找到table


以IDES為例,company code 1000對應的table就是CE4IDEA_ACCT,在SE16輸入PAOBJNR號碼來找看看:


執行後結果:



2010年9月15日

F110 找出下次付款日

友人提問:在F110自動付款中如何找出下次付款日




檢查標準程式發現是用Data Clusters方式存在,不方便直接使用SQL查詢
要改用Import,以下節錄F110VFP0中的程式碼:


  F110ID-LAUFD   = F110V-LAUFD.
  F110ID-LAUFI   = F110V-LAUFI.
  F110ID-OBJKT   = KON_PARAM.
  F110VERSIONPAR = SPACE.
  REFRESH: BUKTAB, FKTTAB, SLKTAB, SLDTAB, TRCTAB, USRTAB,
           FAETAB, JOBTAB.
  CLEAR:   BUKTAB, FKTTAB, SLKTAB, SLDTAB, TRCTAB, USRTAB,
           FAETAB, JOBTAB, F110C,  TRCOPT, F110VERSIONPAR.
  
IMPORT BUKTAB FKTTAB SLKTAB SLDTAB TRCTAB USRTAB
         FAETAB JOBTAB F110C  TRCOPT F110VERSIONPAR
         
FROM DATABASE RFDT(FB) ID F110ID.


FKTTAB就是parameter的internal table

2010年9月13日

MM03子頁面顯示圖片

前篇提到MM03顯示新的子頁面,在上面放了一張圖片,以下步驟說明如何完成:


1 進入Tcode SMW0,選擇Binary data for WebRFC applications,將圖片上傳至SAP,object name取名叫MY_PIC1


2 在function group ZMGD1 copy screen 1002,給號0200。並在screen layout 拉出一個customer control 取名C_CONTAINER,並在flow logic 新增一個PBO module SET_PICTURE,並填入以下程式碼:


  DATA: G_PICTURE TYPE REF TO CL_GUI_PICTURE,
         G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
         URL 
TYPE LENGTH 255.

  
CLASS CL_GUI_CFW DEFINITION LOAD.

  
IF G_CUSTOM_CONTAINER IS INITIAL.

    
CREATE OBJECT G_CUSTOM_CONTAINER
      
EXPORTING
        CONTAINER_NAME              = 
'C_CONTAINER'
      
EXCEPTIONS
        CNTL_ERROR                  = 
1
        CNTL_SYSTEM_ERROR           = 
2
        CREATE_ERROR                = 
3
        LIFETIME_ERROR              = 
4
        LIFETIME_DYNPRO_DYNPRO_LINK = 
5
        
OTHERS                      6.
    
IF SY-SUBRC NE 0.
      
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    
CREATE OBJECT G_PICTURE
      
EXPORTING
        PARENT = G_CUSTOM_CONTAINER
      
EXCEPTIONS
        ERROR  = 
1
        
OTHERS 2.
    
IF SY-SUBRC NE 0.
      
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    
PERFORM LOAD_PIC_FROM_DB USING 'MY_PIC1' CHANGING URL. * load picture
    
CALL METHOD G_PICTURE->LOAD_PICTURE_FROM_URL
      
EXPORTING
        URL    = URL
      
EXCEPTIONS
        ERROR  = 
1
        
OTHERS 2.
    
IF SY-SUBRC NE 0.
      
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    
CALL METHOD CL_GUI_CFW=>FLUSH
      
EXCEPTIONS
        CNTL_SYSTEM_ERROR = 
1
        CNTL_ERROR        = 
2.

  ENDIF.



3 新增一個form routine LOAD_PIC_FROM_DB,可參考程式RSDEMO_DIALOGBOX_CONTROL並修改為可傳入Object Name(詳略)


4 進入Tcode OMT3B修改IMG

MM03新增子頁面

最近友人問我一個MM03新增子頁面並顯示圖片的問題,一直以來只知道可以新增,手癢之下在IDES練習了一下,把過程放上來


首先在se80 copy一個function group MGD1, 取名就叫做ZMGD1吧(不必copy function module)
再來就是到IMG設定新的子頁面,Tcode OMT3B,要選項目21
Copy Basic Data 2,號碼不要重覆,就給85
選取新增的Basic Data 3再雙擊subscreen
在第一個項目維護新function group的main program以及screen number
設定完成,進MM03看看吧(使用IDES最常用料號100-100),多了一個新的view
MM03果然出現了我們新增的view(如何顯示圖片略,請看下一篇)