结合两个SAP标准的函数完成仅是修改内部订单基本主数据

1、KAUF_ORDER_READ

2、KAUF_ORDER_STORE

如果还要需要修改AUFK表中的订单状态 和 结算规则系统状态需要再加一个内部订单状态的标准函数

3、STATUS_CHANGE_INTERN

1-3 组可以修改整个内部订单的数据

DATA i_actvt    TYPE tact-actvt.
  DATA i_aufnr    TYPE aufk-aufnr.
  DATA e_afko     TYPE afko.
  DATA e_afpo     TYPE afpo.
  DATA e_coas_old TYPE coas.

DATA lv_desp    LIKE zpv_s_lgcont-desp.
  DATA ls_coas     TYPE coas."订单信息
  DATA ls_kauf     TYPE kauf.

DATA lt_set_stat     TYPE STANDARD TABLE OF jstat.
  DATA:ls_set_stat          TYPE jstat.
  DATA:lt_jest        TYPE  TABLE OF jest.
  DATA:ls_jest        TYPE  jest.

"读取内部订单信息信息
  CALL FUNCTION 'KAUF_ORDER_READ'
    EXPORTING
      i_actvt                = '03'
      i_aufnr                = p_aufnr
    IMPORTING
      e_coas                 = ls_coas
      e_kauf                 = ls_kauf
*     e_coas_old             = e_coas_old
    EXCEPTIONS
      auart_not_found        = 1
      foreign_lock           = 2
      no_authority           = 3
      order_not_found        = 4
      order_type_not_valid   = 5
      wrong_input            = 6
      logsystem_inconsistent = 7
      OTHERS                 = 8.
  IF sy-subrc <> 0.
* Implement suitable error handling here
    PERFORM frm_build_msg USING sy-msgid sy-msgno
                                sy-msgv1 sy-msgv2
                                sy-msgv3 sy-msgv4
                          CHANGING lv_desp.
    pt_ret-type = c_e.
    pt_ret-message = '内部订单状态修改失败' && lv_desp.
    APPEND pt_ret. CLEAR pt_ret.
    RETURN.
  ENDIF.

ls_coas-phas3 = abap_true.
  ls_coas-phas1 = abap_false.
  ls_coas-phas2 = abap_false.
  ls_coas-phas0 = abap_false.

CALL FUNCTION 'KAUF_ORDER_STORE'
    EXPORTING
      i_check             = 'N'
      i_coas              = ls_coas
*     I_DIALOG            = ' '
      i_kauf              = ls_kauf
      i_save_flag         = 'X'
    EXCEPTIONS
      illegal_change      = 1
      order_not_in_buffer = 2
      OTHERS              = 3.
  IF sy-subrc <> 0.
* Implement suitable error handling here
    PERFORM frm_build_msg USING sy-msgid sy-msgno
                                sy-msgv1 sy-msgv2
                                sy-msgv3 sy-msgv4
                          CHANGING lv_desp.
    pt_ret-type = c_e.
    pt_ret-message = '内部订单状态修改失败' && lv_desp.
    APPEND pt_ret. CLEAR pt_ret.
    RETURN.
  ELSE.

CONSTANTS:
          l_con_stk_crtd        TYPE jest-stat   VALUE 'I0001',"建立    PHAS1  状态 "订单建立"
          l_con_stk_rel         TYPE jest-stat   VALUE 'I0002',"已释放     PHAS2  状态 "订单完成"
          l_con_stk_setc        TYPE jest-stat   VALUE 'I0028',"结算规则维护  这个状态 保持激活状态
          l_con_stk_teco        TYPE jest-stat   VALUE 'I0045',"技术实现 PHAS2     状态 "订单完成"
          l_con_stk_clsd        TYPE jest-stat   VALUE 'I0046'."算结算 PHAS3  状态 "订单关闭"

REFRESH lt_set_stat.

SELECT * FROM jest
             INTO TABLE lt_jest
            WHERE stat  IN ('I0001','I0002','I0045','I0046')
              AND objnr EQ ls_coas-objnr.

LOOP AT lt_jest INTO ls_jest.
      IF ls_jest-stat EQ l_con_stk_clsd.
        CLEAR:ls_jest-inact.
      ELSE.
        ls_jest-inact = abap_true.
      ENDIF.
      MOVE-CORRESPONDING ls_jest TO ls_set_stat.
      APPEND ls_set_stat TO lt_set_stat.
      CLEAR:ls_set_stat.
    ENDLOOP.

CALL FUNCTION 'STATUS_CHANGE_INTERN'
      EXPORTING
        objnr               = ls_coas-objnr
      TABLES
        status              = lt_set_stat
      EXCEPTIONS
        object_not_found    = 1
        status_inconsistent = 2
        status_not_allowed  = 3
        OTHERS              = 4.
    IF sy-subrc <> 0.
      PERFORM frm_build_msg USING sy-msgid sy-msgno
                                  sy-msgv1 sy-msgv2
                                  sy-msgv3 sy-msgv4
                            CHANGING lv_desp.
      pt_ret-type = c_e.
      pt_ret-message = '内部订单状态修改失败' && lv_desp.
      APPEND pt_ret. CLEAR pt_ret.
      RETURN.
    ELSE.
      COMMIT WORK AND WAIT.
      PERFORM frm_build_msg USING sy-msgid sy-msgno
                                  sy-msgv1 sy-msgv2
                                  sy-msgv3 sy-msgv4
                            CHANGING lv_desp.
      pt_ret-type = c_s.
      pt_ret-message = '内部订单状态修改成功' && lv_desp.
      APPEND pt_ret. CLEAR pt_ret.
    ENDIF.

ENDIF.

KO02内部订单修改相关推荐

  1. 【学习笔记】CO内部订单

    内部订单 一.用途 主要用途是归集跨部门之间的费用,将其分摊到相应的成本中心或直接费用化. 比如在生产环节,我们可以用内部订单归集新产品研发费用(跨部门合作的情况). 简单理解为"专项费用& ...

  2. Internal Order内部订单

    Internal Order内部订单 (2016-11-15 21:48:08) 标签: ko22 可用性检查 ko88 ko02 kka1 分类: CO控制[原创] 获取更多sap资料(教程,项目资 ...

  3. FICO配置详解之五:内部订单管理

    概述 内部订单:可用于跟踪成本控制范围内的成本和收入(在某些情况下).可使用内部订单来计划.监控和分配成本. 可根据用途将内部订单拆分为四个类别: • 间接费用成本订单:用于监控由于某些情况(如举行商 ...

  4. SAP固定资产计提折旧费到内部订单

    该需求,第一反应就是,在AS03固定资产卡片的时间相关标签内增加"内部订单"字段,填写完订单后,进行AFAB进行折旧计提, But,经测试,计提分录并未进入内部订单内容,百度.谷歌 ...

  5. 【转载】SAP内部订单概念信息

    内部订单 内部订单是用来对企业内部某项工作或者任务编制计划.归集成本.结算的载体.比如市场推广活动.内部团队活动.研发项目.投资项目.在建工程项目等. 内部订单需要区别于销售订单.采购订单和生产订单. ...

  6. SAP中内部订单和PS的区别

    1.内部订单用于计划.收集.监视和结算在公司内部进行的特定操作或任务.内部订单可用于不同的目的.这种功能分类反映在不同的订单类型中,其属性定义了在系统中处理订单的方式.SAP系统内内部定单分为两类:实 ...

  7. SAP内部订单使用实例

    下面举几个实例说明如何使用内部订单 1. 实际费用归集 和成本中心通常用来归集部门发生的费用不同,(实际)内部订单通常用来归集某个专项的费用,这个专项可以是公司的一次春游,一次年会甚至某个建设项目,通 ...

  8. SAP内部订单的作用

    SAP内部订单的作用:通过内部订单来计划.监控以及分析实际任务,用来归集费用,成本的预算控制,成本分析等,可根据需要将内部订单分组

  9. 成本中心和内部订单浅析

    内部订单:内部订单用于计划.收集.监视和结算在公司内部进行的特定操作或任务. 内部订单可用于不同的目的.这种功能分类反映在不同的订单类型中,其属性定义了在系统中处理订单的方式.SAP系统内内部定单分为 ...

最新文章

  1. php 中文转拼音,可以只转首字母,可以设置utf8、gbk
  2. 等值连接_sql高阶教程:非等值自连接
  3. 【实施工程师】ARP——地址解析协议(高清版本)
  4. Linux文件IO-例会笔记总结
  5. sql语法,未完待续
  6. [剑指offer]面试题第[42]题[Leedcode][JAVA][第53题][最大子序和][动态规划][贪心][分治]
  7. mysql编码转换工具_mysql编码转换搞定
  8. 我给女朋友讲编程html系列(1) -- Html快速入门
  9. drupal的php运行版本,Drupal 运行的系统要求
  10. 【人工智能数学基础(五)】信息论
  11. 时速云:基于K8S的容器PaaS,将成为未来IT基础设施的重要组成部分
  12. Excel常用技巧(一)
  13. 设备驱动安装不上怎么办?
  14. 信息系统项目管理重点:客户关系管理(CRM)
  15. 图像的转化(包括灰度,HSV,HSI)
  16. 最强损失函数分析:一般自适应鲁棒损失函数
  17. 【软考-软件设计师】(五).计算机网络
  18. bootstrap的tooltip
  19. 第4版-信息系统项目管理师十大知识域及ITTO
  20. 人人通服务器返回为空,沁教云人人通-操作手册教师版-V1.doc

热门文章

  1. python下标越界怎么解决_Python异常处理
  2. 科技幻想(一)——便捷人机交互
  3. 小工具,大作用:教你如何利用EXCEL函数LINEST做回归分析
  4. axis监控记录服务器显示画面,AXIS VMS CMS-M 中心管理服务器
  5. web前端 js实现频域水印制作
  6. 工业智能机器人数量缺口大 核心技术要突破!
  7. 百度地图 JavaScript API ios不能使用情况
  8. 祖国生日快乐,个性化国庆头像合成
  9. 逸管家诚信是企业的立业之本
  10. 高德地图实时定位显示图标和名字