通知单的长文本和合作伙伴功能获得

来源:互联网 发布:手机淘宝复制链接 编辑:程序博客网 时间:2024/04/30 16:11

通知单的透明表:

 

VIQMEL  视图,通知单的主要属性

Qmsm  任务表

Qmur  主题

Qmih  故障表

Qmel 主表

Qmfe 项目 (长文本  缺陷定位 等)

T356_t  优先级

Qpgt 代码组文本     qpct  代码文本

  目录的定义(KATALOGART):

 

一,长文本

长文本的存储位置:  抬头:STXH    行项目:STXL

关键字:TDNAMETDOBJECT,  TDID TDSPRAS

  TDNAME   号码

  TDOBJECT   (同一类对象的 tdobject 都相同)

  TDID         

TDSPRAS   :语言

 由于长文本数据保存在 STXL 不能正常读取,所有应该利用一个函数 :

 READ_TEXT

 我们调用它,并且提供上述的几个参数即刻读取到指定的长文本。由于长文本很长,所以我们读取出来的数据可能是很多条数据。所以我们需要遍历读取到的数据,然后进行拼接。

  保存用另一个函数 save_text ,只是用这个函数保存至今还没有保存成功。

例子: 通知单的长文本分为五类:抬头,原因,工序,结果,评估

类别

Tdname

Tdobject

Tdid

tdspras

备注

抬头

通知单号

QMEL

LTXT

 

 

原因

通知单号+qmfe-fenum

QMFE

LTXT

 

Qmfe-fecod = 0010

工序

通知单号+qmfe-fenum

QMFE

LTXT

 

Qmfe-fecod = 0020

结果

通知单号+qmfe-fenum

QMFE

LTXT

 

Qmfe-fecod = 0030

评估

通知单号+qmfe-fenum

QMFE

LTXT

 

Qmfe-fecod = 0040

 

 

代码实例:

  TYPESBEGIN OF ty_text,
       qmnum LIKE qmel-qmnum,     "通知单号
      fenum LIKE qmfe-fenum,
      fecod LIKE qmfe-fecod,
      kurztext(20TYPE c,
      text(1000TYPE c,         "
   END OF ty_text.

 

  DATA: gt_text TYPE TABLE OF ty_text,
      gs_text TYPE ty_text.

 

  FORM get_text2  USING   v_qmnum.
  DATA:  td_name   LIKE stxh-tdname,
         fenum LIKE qmfe-fenum,
         l_qmnum(12TYPE c,
         c_fenum(4TYPE c
         .
  DATA itab_line LIKE tline OCCURS 0 WITH HEADER LINE.

  CLEAR: gt_text,gs_text.

  SELECT a~qmnum  a~fenum a~fecod b~kurztext
       INTO CORRESPONDING FIELDS OF TABLE  gt_text
         FROM qmfe AS a
           INNER JOIN qpct AS b
          ON a~fekat = b~katalogart
         AND a~fegrp = b~codegruppe
         AND a~fever = b~version
         AND a~fecod = b~code
        WHERE  a~qmnum = v_qmnum
          AND  a~indtx = 'X'
          AND  b~sprache = 1
          AND  b~katalogart = 'C'
          AND  b~codegruppe = 'CLM-01'
          AND  b~version = '000001'
       .

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = v_qmnum
    IMPORTING
      output = l_qmnum.

  IF sy-subrc = 0.

    LOOP AT gt_text INTO gs_text.
      c_fenum = gs_text-fenum.
      PERFORM zero_do USING c_fenum 4.
      CONCATENATE l_qmnum c_fenum INTO td_name.


      CLEAR itab_line. REFRESH itab_line.

      CALL FUNCTION 'READ_TEXT'                                               " 读取通知内容长文本
            EXPORTING
                   client                       = sy-mandt
                   id                           = 'LTXT'
                   language                     = sy-langu
                   name                         = td_name
                   object                       = 'QMFE'
                 TABLES
                   lines                         = itab_line
                EXCEPTIONS
                 not_found                     = 4.

      IF sy-subrc = 0.
        LOOP AT itab_line.
          CONCATENATE gs_text-text itab_line-tdline INTO gs_text-text.    "把多行长文本加在一起
        ENDLOOP.
        MODIFY gt_text FROM gs_text.
      ENDIF.
    ENDLOOP.

  ENDIF.
  td_name = l_qmnum.
  CLEAR itab_line. REFRESH itab_line.

  CALL FUNCTION 'READ_TEXT'                                               " 读取通知内容长文本
           EXPORTING
                  client                       = sy-mandt
                  id                           = 'LTXT'
                  language                     = sy-langu
                  name                         = td_name
                  object                       = 'QMEL'
                TABLES
                  lines                         = itab_line
               EXCEPTIONS
                not_found                     = 4.

  IF sy-subrc = 0.
    CLEAR gs_text.
    LOOP AT itab_line.
      CONCATENATE gs_text-text itab_line-tdline INTO gs_text-text.    "把多行长文本加在一起
    ENDLOOP.
    gs_text-qmnum = v_qmnum.
    gs_text-fecod = '0000'.
    gs_text-kurztext = '抬头长文本'.
    APPEND gs_text TO gt_text.
  ENDIF.
ENDFORM.                          

 

 

 

二,合作伙伴

  

Ihpa 合作伙伴 QM+通知单号 关联 通知单) 

Tpar  合伙人 角色定义(合作伙伴功能及描述,合作伙伴编号类型)

TVPA  合作伙伴编号类型表  (合作伙伴编号类型及描述,对应的数据表格)

tpart 合作伙伴功能定义文本

Objnr = QM+通知单号 objty = QMC

合作伙伴定义如下(PARVW)

读取方法:

首先通过 PM_Partner_get 获得合作伙伴列表

参数:Objnr = QM+qmel-qmnum(12)

返回:IHPA_TAB (合作伙伴列表)

然后调用 PM_Partner_read 获得  diadrc_wa

参数:parvw = ihpa_tab-pa

      Parnr = ihpa_itab-parnr

Objnr = ihpa_itab-objnr

 

1.             合作伙伴功能

1.       名称

1.       Table

1.       Field1

1.       Field2

1.       备注

1.       AB

2.       负责部门

3.        

2.       HRP1000

2.       Objid

2.       Stext

2.        

1.       VW

4.       负责人

5.        

3.        

3.        

3.        

3.        

1.       AU

6.       创始人

4.        

4.        

4.        

4.        

1.       HR

7.       制造厂商

5.       LFA1

5.       Lifnr

5.       Name1

5.        

1.       AG

8.       售达方

6.       KNA1

6.       Kunnr

6.       Name1

6.       界面中显示SP

1.       VU

9.       负责的用户

7.        

7.        

7.        

7.        

1.       LF

10.   供应商

8.       LFA1

8.       Lifnr

8.       Name1

8.       界面中显示VN

1.       KU

11.   协调者

9.        

9.        

9.        

9.        

1.       CP

12.   联系人

10.    

10.    

10.    

10.    

2.        

13.    

11.    

11.    

11.    

11.    

 

代码实例:

 

  *合作伙伴
TYPESBEGIN OF  ty_parter,
          vtext TYPE tpart-vtext,      " 功能
          parnr TYPE ihpa-parnr,       "(合作伙伴)
          name1 TYPE diadrcpd-name1,   " 名称
          addr(200)  TYPE c,           " 地址

          city1 TYPE diadrcpd-city1 ,   "城市
          tel_number TYPE diadrcpd-tel_number ,  "电话号码
          fax_number TYPE diadrcpd-fax_number ,  "传真
          sort1 TYPE diadrcpd-sort1,  "排序
       END OF ty_parter.

 

  DATA: gt_parter TYPE TABLE OF ty_parter,
      gs_parter TYPE ty_parter.

 

  FORM get_parter  USING    v_qmnum.
  DATA: it_part_h TYPE TABLE OF ihpavb WITH HEADER LINE.
  DATA: wa_d LIKE diadr.
  DATA: v_text TYPE tpart-vtext.
  DATA l_objnr TYPE onr00-objnr.
  DATA l_qmnum(12TYPE c.
  DATA tabix TYPE sy-tabix.
  CLEAR: it_part_h,wa_d,gt_parter,gs_parter.

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = v_qmnum
    IMPORTING
      output = l_qmnum.

  CONCATENATE 'QM' l_qmnum INTO l_objnr.
  READ TABLE gt_main INTO gs_main WITH KEY qmnum = v_qmnum.
  tabix = sy-tabix.
*  读取合作伙伴列表
  CALL FUNCTION 'PM_PARTNER_GET'
    EXPORTING
      objnr    = l_objnr
    TABLES
      ihpa_tab = it_part_h.
  IF sy-subrc = 0.
    LOOP AT it_part_h.
*      读取合作伙伴细节
      CALL FUNCTION 'PM_PARTNER_READ'
        EXPORTING
          parvw    = it_part_h-parvw
          parnr    = it_part_h-parnr
          objnr    = it_part_h-objnr
        IMPORTING
          diadr_wa = wa_d
          vtext    = v_text.
      IF sy-subrc = 0.
        gs_parter-parnr = it_part_h-parnr.
        gs_parter-name1 = wa_d-name1.
        gs_parter-city1 = wa_d-city1.
        gs_parter-tel_number = wa_d-tel_number.
        gs_parter-fax_number = wa_d-fax_number.
        gs_parter-sort1 = wa_d-sort1.
        gs_parter-vtext = v_text.
        CONCATENATE wa_d-name1 ',' wa_d-city1 ','
                    wa_d-tel_number ','
                    wa_d-fax_number ','
                    wa_d-sort1
                    INTO gs_parter-addr.
        APPEND gs_parter TO gt_parter.
*        把负责人 和 协调者 放到主表中
        IF it_part_h-parvw = 'VW' AND gs_main-fzr IS INITIAL.
          gs_main-fzr = wa_d-name1.
          MODIFY gt_main FROM gs_main INDEX tabix.
        ENDIF.
        IF it_part_h-parvw = 'KU' AND gs_main-xtz IS INITIAL.
          gs_main-xtz = wa_d-name1.
          MODIFY gt_main FROM gs_main INDEX tabix.
        ENDIF.
      ENDIF.
    ENDLOOP.
  ENDIF.

 

 

当让对于其它对象的长文本和合作伙伴,也可以用类似的方法读取