通知单的透明表:
 
VIQMEL 视图,通知单的主要属性
Qmsm 任务表
Qmur 主题
Qmih 故障表
Qmel 主表
Qmfe 项目 (长文本 缺陷定位 等)
T356_t 优先级
Qpgt 代码组文本 qpct 代码文本
目录的定义(KATALOGART):
 
一,长文本
长文本的存储位置: 抬头:STXH 行项目:STXL
关键字:TDNAME,TDOBJECT, 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 | 
代码实例:
TYPES: BEGIN OF ty_text,
       qmnum LIKE qmel-qmnum,     "通知单号
      fenum LIKE qmfe-fenum,
      fecod LIKE qmfe-fecod,
      kurztext(20) TYPE c,
      text(1000) TYPE c,         "
   END OF 
DATA: gt_text TYPE TABLE OF ty_text,
      gs_text TYPE 
FORM get_text2  USING   v_qmnum.
  DATA:  td_name   LIKE stxh-tdname,
         fenum LIKE qmfe-fenum,
         l_qmnum(12) TYPE c,
         c_fenum(4) TYPE 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. | 
代码实例:
*合作伙伴
TYPES: BEGIN 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 
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(12) TYPE 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.
当让对于其它对象的长文本和合作伙伴,也可以用类似的方法读取










