READ TABLE s_head INDEX 1.
IF sy-subrc = 0.
ls_orders_h = s_head.
*** 抬头
CLEAR: ls_header,ls_headerx.
ls_header-doc_type = s_head-auart. "销售凭证类型
ls_header-sales_org = '8000'. "销售组织
ls_header-distr_chan = s_head-vtweg."分销渠道
ls_header-division = '10'. " 产品组默认
ls_header-purch_no_c = s_head-khdh. " 客户参考号
ls_header-req_date_h = s_head-sodate. "交货日期 ls_headerx-doc_type = abap_true.
ls_headerx-sales_org = abap_true.
ls_headerx-distr_chan = abap_true.
ls_headerx-division = abap_true.
ls_headerx-purch_no_c = abap_true.
ls_headerx-req_date_h = abap_true.
*退货原因
CASE s_head-augru .
WHEN '10 '.
ls_header-ord_reason = '900'.
WHEN '20 '.
ls_header-ord_reason = '910'.
WHEN '30'.
ls_header-ord_reason = '930'.
ENDCASE. ls_headerx-ord_reason = abap_true.
*** 抬头增强字段
CLEAR: ls_bape_vbak,ls_bape_vbakx. ls_bape_vbak-zzaykhdh = s_head-zkhdha. "
ls_bape_vbak-zzsosourc = s_head-sosourc. "
LOOP AT s_item.
lv_matnr = s_item-matnr.
CLEAR s_item.
ENDLOOP.
READ TABLE s_head INDEX 1.
ls_orders_h-kunnr = s_head-kunnr.
CALL FUNCTION 'ZSD_ORDER_TYPE'
EXPORTING
i_matnr = lv_matnr
i_kunnr = ls_orders_h-kunnr
IMPORTING
o_type = ls_bape_vbak-zzbustype. ls_bape_vbak-zdddd = s_head-zddlxx.
ls_bape_vbak-zddlll = s_head-zddlya. ls_bape_vbakx-zzykhdh = abap_true.
ls_bape_vbakx-zzsosourc = abap_true.
ls_bape_vbakx-zzbustype = abap_true. ls_bape_vbakx-zddlx = abap_true.
ls_bape_vbakx-zddly = abap_true. CLEAR:lt_extensionin,ls_extensionin,str.
CONCATENATE ls_extensionin-valuepart1 ls_extensionin-valuepart2 ls_extensionin-valuepart3 ls_extensionin-valuepart4 INTO str.
MOVE 'BAPE_VBAK' TO ls_extensionin-structure.
CALL METHOD cl_abap_container_utilities=>fill_container_c
EXPORTING
im_value = ls_bape_vbak
IMPORTING
* ex_container = ls_extensionin-valuepart1.
ex_container = str.
ls_extensionin-valuepart1 = str+0(240).
ls_extensionin-valuepart2 = str+240(240).
ls_extensionin-valuepart3 = str+480(240).
ls_extensionin-valuepart4 = str+720(240). APPEND ls_extensionin TO lt_extensionin. CLEAR ls_extensionin.
MOVE 'BAPE_VBAKX' TO ls_extensionin-structure.
MOVE ls_bape_vbakx TO ls_extensionin-valuepart1.
APPEND ls_extensionin TO lt_extensionin.
***合作伙伴
CLEAR: lt_partner,ls_partner.
ls_partner-partn_role = 'AG'." 售达方
ls_partner-partn_numb = s_head-kunnr."SAP客户编码
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = ls_partner-partn_numb
IMPORTING
output = ls_partner-partn_numb. APPEND ls_partner TO lt_partner.
ENDIF. LOOP AT s_item.
* WHERE khdh = s_head-khdh.
lv_posnr = lv_posnr + 10.
lv_line = lv_line + 1.
*** 行项目
CLEAR: ls_item,ls_item. ls_item-itm_number = lv_posnr."行项目号
ls_item-material_long = s_item-matnr."物料号
ls_item-material = s_item-matnr.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = ls_item-material_long
IMPORTING
output = ls_item-material_long.
ls_item-target_qty = s_item-quantity."数量
IF s_item-price = 0.
ls_item-item_categ = 'ZRNN'.
ENDIF.
APPEND ls_item TO lt_item. ls_itemx-itm_number = lv_posnr.
ls_itemx-material = abap_true.
ls_itemx-material_long = abap_true.
ls_itemx-target_qty = abap_true.
ls_item-item_categ = abap_true.
APPEND ls_itemx TO lt_itemx. CLEAR: ls_schedule,ls_schedulex.
ls_schedule-itm_number = lv_posnr.
ls_schedule-sched_line = lv_line.
ls_schedule-req_qty = s_item-quantity.
ls_schedule-req_date = s_item-dedate.
APPEND ls_schedule TO lt_schedule. ls_schedulex-itm_number = lv_posnr.
ls_schedule-sched_line = lv_line.
ls_schedulex-req_qty = abap_true.
ls_schedulex-req_date = abap_true.
APPEND ls_schedulex TO lt_schedulex. *** 行项目条件记录
CLEAR:ls_condx,ls_cond.
ls_cond-itm_number = lv_posnr.
ls_cond-cond_type = 'ZSG'. "定价条件
ls_cond-cond_value = s_item-price / 10."价格
APPEND ls_cond TO lt_cond. ls_condx-itm_number = lv_posnr.
ls_condx-cond_type = abap_true.
ls_condx-cond_value = abap_true. APPEND ls_condx TO lt_condx. *** 行项目增强
CLEAR:ls_bape_vbap,ls_bape_vbapx,ls_extensionin,gt_vbap,gs_vbap. ls_bape_vbap-posnr = lv_posnr.
ls_bape_vbap-zzecode = s_item-ecode.
ls_bape_vbap-zzrckhdh = s_item-rckhdh.
ls_bape_vbap-zzkhdh = s_item-khdh.
ls_bape_vbap-zzdeparte = s_item-zzdeparte. ls_bape_vbapx-posnr = lv_posnr.
ls_bape_vbapx-zzecode = abap_true.
ls_bape_vbapx-zzrckhdh = abap_true.
ls_bape_vbapx-zzkhdh = abap_true.
ls_bape_vbapx-zzdeparte = abap_true. MOVE 'BAPE_VBAP' TO ls_extensionin-structure. CALL METHOD cl_abap_container_utilities=>fill_container_c
EXPORTING
im_value = ls_bape_vbap
IMPORTING
ex_container = ls_extensionin-valuepart1.
APPEND ls_extensionin TO lt_extensionin. CLEAR ls_extensionin.
MOVE 'BAPE_VBAPX' TO ls_extensionin-structure.
MOVE ls_bape_vbapx TO ls_extensionin-valuepart1.
APPEND ls_extensionin TO lt_extensionin. ENDLOOP. CALL FUNCTION 'BAPI_CUSTOMERRETURN_CREATE'
EXPORTING
* SALESDOCUMENTIN =
return_header_in = ls_header
return_header_inx = ls_headerx
IMPORTING
salesdocument = lv_salesdocument
TABLES
return = lt_return
return_items_in = lt_item
return_items_inx = lt_itemx
return_partners = lt_partner
return_schedules_in = lt_schedule
return_schedules_inx = lt_schedulex
return_conditions_in = lt_cond
extensionin = lt_extensionin. LOOP AT lt_return INTO ls_return WHERE type = 'A' OR type = 'E'.
lv_message = lv_message && ls_return-message.
ENDLOOP.

BAPI_CUSTOMERRETURN_CREATE 创建退货订单的更多相关文章

  1. BAPI_SALESORDER_CREATEFROMDAT2 创建退货SO

    BAPI_SALESORDER_CREATEFROMDAT2创建退货订单时,会出现以下错误:不允许业务对象 BUS2032 和销售凭证类别 H 的组合. 解决办法: 采用/原BAPI的内嵌BAPI: ...

  2. 创建生产订单函数BAPI_PRODORD_CREATE

    创建生产订单,创建订单长文本,订单下达 DATA:gs_bapi_pp_order_create TYPE bapi_pp_order_create. DATA:gt_bapi_order_key T ...

  3. POCISO-採购创建内部订单(R12.2.3)

     採购创建内部订单(R12.2.3) --US Program:Create Internal Orders Short Name:POCISO Application:Purchasing Ex ...

  4. 【MM系列】SAP MM模块-收货自动创建采购订单

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-收货自动创建采购订 ...

  5. 【SD系列】SAP 创建销售订单-用外部给号的方法步骤

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[SD系列]SAP 创建销售订单-用外部给号的方 ...

  6. Django学习路15_创建一个订单信息,并查询2020年\9月的信息都有哪些

    在 app5.models.py 中添加一个 Order 表 class Order(models.Model): o_num = models.CharField(max_length= 16 ,u ...

  7. day114:MoFang:基于支付宝沙箱测试环境完成创建充值订单接口&服务端处理支付结果的同步通知和异步通知

    目录 1.基于支付宝提供的沙箱测试环境开发支付接口 1.后端提供创建充值订单接口 2.前端调用AlipayPlus发起支付 3.注意:自定义APPLoader完成接下来的开发 4.下载支付宝沙箱钱包A ...

  8. 调用SAP函数创建寄售退货订单的时候报错:业务对象 BUS2032 是销售订单,销售凭证类别 H 是退货。

    RE.KR订单类型用BAPI_CUSTOMERRETURN_CREATE 其他用BAPI_SALESORDER_CREATEFROMDAT2

  9. 批量创建采购订单 BAPI_PO_CREATE1

    *&---------------------------------------------------------------------* *& REPORT  ZMM_PO_C ...

  10. 使用简单的Java代码在SAP C4C里创建销售订单

    需要创建的销售订单的明细通过硬编码指定: 比如销售订单的描述为Jerry Test 2019-1-23 16:05PM 执行之后,看到Status Code 201,说明创建成功: 到UI上能看到成功 ...

随机推荐

  1. Flask应用实战经验总结:使用工厂函数创建app与uWSGI服务部署启动失败解决方案

    在 Flask 应用开发中,使用工厂函数创建应用实例,并借助 uWSGI 服务进行部署,是常见且高效的组合. 然而,在实际操作过程中,uWSGI 配置文件与应用启动函数之间的关系复杂,容易引发各种问题 ...

  2. selenium自动化测试-获取动态页面小说

    有的网站页面是动态加载的资源,使用bs4库只能获取静态页面内容,无法获取动态页面内容,通过selenium自动化测试工具可以获取动态页面内容. 参考之前的"bs4库爬取小说工具"文 ...

  3. PaddleOCR学习笔记1

    尝试使用PaddleOCR方法,如何使用自定义的模型方法,参数怎么配置,图片识别尝试简单提高识别率方法. 目前仅仅只是初步学习下如何使用PaddleOCR的方法. 一,测试识别图片: 1.png : ...

  4. Linux reboot全过程

    一.版本说明嵌入式Linux 下面的reboot命令看似简单,但出问题时定位起来发现别有洞天.下面就按在shell下执行reboot命令之后程序的执行过程进行解析.Busybox:1.23.2     ...

  5. 项目实战 TS

    项目实战 TS 通用技巧 新手先 any 再填坑,老手先定义数据结构写逻辑 遇到新场景,没把握快速,先用 any 再填坑,填坑的过程也是 TS 技能满满提升的过程. TS 发现潜在问题 1)复杂逻辑, ...

  6. 【C语言】Linux 飞翔的小鸟

    [C语言]Linux 飞翔的小鸟 零.环境部署 安装Ncurses库 sudo apt-get install libncurses5-dev 壹.编写代码 代码如下: bird.c #include ...

  7. IP地址查询服务

    IP地址查询站点 https://ip.cn/ http://ip.qq.com/ http://ip138.com/ https://www.apnic.net/ ... IP计算 ip地址在线计算 ...

  8. Jmeter压测数据库总结

    1.添加MySQL驱动 在测试计划里面添加,操作如下: MySQL驱动自行下载 2.添加线程组 选中测试计划,右键添加->线程(用户)->线程组,页面如下: 3.添加JDBC连接配置 选中 ...

  9. Sentinel源码—3.ProcessorSlot的执行过程

    大纲 1.NodeSelectorSlot构建资源调用树 2.LogSlot和StatisticSlot采集资源的数据 3.Sentinel监听器模式的规则对象与规则管理 4.AuthoritySlo ...

  10. MySQL 的索引类型有哪些?

    MySQL 的索引类型 MySQL 提供多种索引类型,用于优化数据查询性能.每种索引类型在存储结构.适用场景和性能特性方面各不相同. 1. 常见的索引类型 (1)B+树索引 结构:基于 B+ 树实现, ...