采购单与调拨单或销售订单关联,增加表FRET记录

采购单与调拨单或销售订单关联,增加表FRET记录,在对采购单做收货时,

系统自动对调拔单或销售订单,创建拣配单(交货单),具体做法:

1、往FRET增加记录;

2、修改采购单抬头和行项目相应关联标识。

代码:

(1)在SE11创建结构: ZST_SAVE_FRET

BLNRB CHAR 10 0 凭证号,采购
BPOSB NUMC 6 0 凭证项目,采购 
BLNRA CHAR 10 0 发货凭证号 
BPOSA NUMC 6 0 凭证项目,发货 

(2)在SE37创建函数如下:

FUNCTION ZF_SAVE_FRET.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  EXPORTING
*"     REFERENCE(ERRCODE) TYPE  CHAR1
*"     REFERENCE(EXEMSG) TYPE  CHAR100
*"  TABLES
*"      IT_FRET STRUCTURE  ZST_SAVE_FRET
*"----------------------------------------------------------------------
  DATA:F_IT_FRET_SAVE LIKE FRET OCCURS WITH HEADER LINE,
       F_IT_CGD_TT   LIKE EKKO OCCURS WITH HEADER LINE,
       F_IT_CGD_HXM  LIKE EKPO OCCURS WITH HEADER LINE,
       F_IT_XSD_TT   LIKE VBAK OCCURS WITH HEADER LINE,
       F_IT_XSD_HXM  LIKE VBAP OCCURS WITH HEADER LINE,
       F_IT_DBD_HXM  LIKE EKPO OCCURS WITH HEADER LINE,
       F_CGD_HT_INDEX  TYPE SY-TABIX,
       F_CGD_HXM_INDEX TYPE SY-TABIX.

  CLEAR:ERRCODE.
  EXEMSG '数据保存成功'.

  IF IT_FRET[] IS INITIAL.
    EXEMSG '传入内表[IT_FRET]为空'.
    RETURN.
  ENDIF.

  "-------------------- 1、取采购单信息 --------------------
  "--**--  (1) 行项目数据
  SELECT FROM EKPO INTO CORRESPONDING FIELDS OF TABLE F_IT_CGD_HXM
     FOR ALL ENTRIES IN IT_FRET
   WHERE EBELN IT_FRET-BLNRB AND
         EBELP IT_FRET-BPOSB+1.
  "--**--  (2) 抬头数据
  SELECT FROM EKKO INTO CORRESPONDING FIELDS OF TABLE F_IT_CGD_TT
     FOR ALL ENTRIES IN IT_FRET
   WHERE EBELN IT_FRET-BLNRB.

  "--------------------  2、取销售订单信息 --------------------
  "--**--  (1) 行项目数据
  SELECT FROM VBAP INTO CORRESPONDING FIELDS OF TABLE F_IT_XSD_HXM
     FOR ALL ENTRIES IN IT_FRET
   WHERE VBELN IT_FRET-BLNRA AND
         POSNR IT_FRET-BPOSA.
  "--**--  (2) 抬头数据
  SELECT FROM VBAK INTO CORRESPONDING FIELDS OF TABLE F_IT_XSD_TT
     FOR ALL ENTRIES IN IT_FRET
   WHERE VBELN IT_FRET-BLNRA.

  "-------------------- 3、取调拨单信息 -----------------------
  SELECT FROM EKPO INTO CORRESPONDING FIELDS OF TABLE F_IT_DBD_HXM
     FOR ALL ENTRIES IN IT_FRET
   WHERE EBELN IT_FRET-BLNRA AND
         EBELP IT_FRET-BPOSA+1.

  SORT F_IT_CGD_HXM BY EBELN EBELP.
  SORT F_IT_XSD_TT  BY VBELN.
  SORT F_IT_XSD_HXM BY VBELN POSNR.
  SORT F_IT_DBD_HXM BY EBELN EBELP.

  CLEAR F_IT_FRET_SAVE[].
  LOOP AT IT_FRET.
    CLEAR F_IT_FRET_SAVE.
    MOVE-CORRESPONDING IT_FRET TO F_IT_FRET_SAVE.

    "检查采购单
    READ TABLE F_IT_CGD_HXM WITH KEY EBELN IT_FRET-BLNRB
                                     EBELP IT_FRET-BPOSB+1
                            BINARY SEARCH.
    F_CGD_HXM_INDEX SY-TABIX.
    IF SY-SUBRC NE 0.
      CONTINUE.
    ENDIF.

    "检查销售订单
    READ TABLE F_IT_XSD_HXM WITH KEY VBELN IT_FRET-BLNRA
                                     POSNR IT_FRET-BPOSA
                            BINARY SEARCH.
    IF SY-SUBRC EQ 0.
      F_IT_FRET_SAVE-BTYPA '2'.
      F_IT_FRET_SAVE-MATNR F_IT_XSD_HXM-MATNR.
      F_IT_FRET_SAVE-ABNTP '01'.
      F_IT_FRET_SAVE-PMENA F_IT_XSD_HXM-KWMENG.
      F_IT_FRET_SAVE-PEINA F_IT_XSD_HXM-MEINS.
      READ TABLE F_IT_XSD_TT WITH KEY VBELN IT_FRET-BLNRA BINARY SEARCH.
      IF SY-SUBRC EQ 0.
        F_IT_FRET_SAVE-ABNNR F_IT_XSD_TT-KUNNR.
      ENDIF.
    ELSE.
      "检查调拨订单
      READ TABLE F_IT_DBD_HXM WITH KEY EBELN IT_FRET-BLNRA
                                       EBELP IT_FRET-BPOSA+1
                              BINARY SEARCH.
      IF SY-SUBRC EQ 0.
        F_IT_FRET_SAVE-BTYPA '1'.
        F_IT_FRET_SAVE-MATNR F_IT_DBD_HXM-MATNR.
        F_IT_FRET_SAVE-PMENA F_IT_DBD_HXM-MENGE.
        F_IT_FRET_SAVE-PEINA F_IT_DBD_HXM-MEINS.
        F_IT_FRET_SAVE-ABNTP '02'.
        F_IT_FRET_SAVE-ABNNR F_IT_DBD_HXM-WERKS.
      ELSE.
        CONTINUE.
      ENDIF.
    ENDIF.

    F_IT_FRET_SAVE-BTYPB '1'.
    F_IT_FRET_SAVE-GABLV '02'.
    F_IT_FRET_SAVE-BARTV '5'.
    F_IT_FRET_SAVE-VERVF '1'.
    F_IT_FRET_SAVE-KZVST 'X'.
    F_IT_FRET_SAVE-PMENB F_IT_CGD_HXM-MENGE.
    F_IT_FRET_SAVE-PEINB F_IT_CGD_HXM-MEINS.
    F_IT_FRET_SAVE-WERKA F_IT_CGD_HXM-WERKS.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT  F_IT_FRET_SAVE-ABNNR
      IMPORTING
        OUTPUT F_IT_FRET_SAVE-ABNNR.

    F_IT_FRET_SAVE-ERFDAT SY-DATUM.
    F_IT_FRET_SAVE-ERFUSR SY-UNAME.
    GET TIME FIELD F_IT_FRET_SAVE-ERFZT.
    APPEND F_IT_FRET_SAVE.

    "修改采购单行项目内表数据状态
    F_IT_CGD_HXM-AUREL '5'.
    MODIFY F_IT_CGD_HXM INDEX F_CGD_HXM_INDEX TRANSPORTING AUREL.

    AT END OF BLNRA.
      "修改采购单表头数据状态
      READ TABLE F_IT_CGD_TT WITH KEY  EBELN F_IT_CGD_HXM-EBELN BINARY SEARCH.
      F_CGD_HT_INDEX SY-TABIX.
      IF SY-SUBRC EQ 0.
        F_IT_CGD_TT-STATU 'S'.
        MODIFY F_IT_CGD_TT INDEX F_CGD_HT_INDEX TRANSPORTING STATU.
      ENDIF.
    ENDAT.
  ENDLOOP.

  IF F_IT_FRET_SAVE[] IS INITIAL.
    ERRCODE 'X'.
    EXEMSG  '没有数据需要保存,请检查内表IT_FRET中的单据是否有效'.
    RETURN.
  ENDIF.

  "保存数据到FRET
  MODIFY FRET FROM TABLE F_IT_FRET_SAVE.
  IF SY-SUBRC NE 0.
    ERRCODE 'X'.
    EXEMSG  '保存数据到FRET失败'.
    ROLLBACK WORK.
    RETURN.
  ENDIF.
  "修改采购的状态
  MODIFY EKKO FROM TABLE F_IT_CGD_TT.
  IF SY-SUBRC NE 0.
    ERRCODE 'X'.
    EXEMSG  '修改采购单数据[EKKO]失败'.
    ROLLBACK WORK.
    RETURN.
  ENDIF.

  MODIFY EKPO FROM TABLE F_IT_CGD_HXM.
  IF SY-SUBRC NE 0.
    ERRCODE 'X'.
    EXEMSG  '修改采购单数据[EKPO]失败'.
    ROLLBACK WORK.
    RETURN.
  ENDIF.

  COMMIT WORK AND WAIT.
ENDFUNCTION.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
体细胞突变(somatic mutation)是指非生殖细胞发生的突变,这些突变可能会导致细胞的功能异常,从而引起疾病。G4(G-quadruplex)结构是一种特殊的DNA或RNA结构,由四个鸟嘌呤(G)分子组成的平面四方体结构,近年来受到了广泛的关注。有研究明,一些体细胞突变位点可能会影响G4结构的形成和稳定性,从而与疾病的发生和发展相关。以下是一些筛选体细胞突变位点对G4结构影响的方法: 1. 筛选基因组区域:首先需要从体细胞突变数据库中筛选出与G4结构相关的基因组区域,例如已经知道与G4结构相关的基因或区域,可以利用这些信息进行筛选。如果没有已知的关联信息,可以使用一些基于生物信息学的方法,例如利用G4结构预测工具对基因组序列进行预测,筛选出可能存在G4结构的区域。 2. 筛选突变位点:在筛选出与G4结构相关的基因组区域之后,需要进一步筛选出存在体细胞突变的位点。可以使用一些体细胞突变数据库,例如COSMIC、TCGA等,对这些区域中的突变位点进行筛选。根据突变类型和位置等信息,可以进一步筛选出可能会影响G4结构的位点。 3. 分析突变影响:最后需要对筛选出的突变位点进行进一步分析,判断其对G4结构的影响。可以使用一些G4结构预测工具,例如QGRS Mapper、Quadparser等,对突变位点进行预测,判断其对G4结构的形成和稳定性的影响。可以结合实验数据进行验证,例如利用荧光共振能量转移(FRET)等技术,对突变位点进行实验验证。 需要注意的是,这些方法仅供参考,具体的筛选和分析方法需要根据实际情况进行调整和优化。同时,这些方法需要一定的生物信息学和分子生物学知识和技能,建议在相关领域的专业人士指导下进行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值