销售订单行上行号:LINE_SHIPMENT_OPTION_NUMBER
取值:

( 1)
Line块的块级触发器POST-QUERY调用:
OE_LINE.Post_Query;(来自于库OEXOELIN)


( 2)
库OEXOELIN里Line_Shipment_Option_Number赋值代码:
    OE_CONCAT_VALUES.LINE_SHIPMENT_OPTION
                                        (
                                         Name_in('Line.Line_Number' ),
                                         Name_In('Line.Shipment_Number' ),
                                         Name_In('Line.Option_Number' ),
                                         x_concat_values,
                                         Name_In('Line.Component_Number' ),
                                         Name_In('Line.Service_Number' )
                                         );

    COPY(x_concat_values, 'Line.Line_Shipment_Option_Number' );
   
   
( 3)
OE_CONCAT_VALUES包代码:
PACKAGE BODY oe_concat_values IS
  PROCEDURE line_shipment_option(line_number      IN NUMBER ,
                                 shipment_number  IN NUMBER ,
                                 option_number    IN NUMBER ,
                                 p_concat_value   OUT VARCHAR2 ,
                                 component_number IN NUMBER DEFAULT NULL ,
                                 service_number   IN NUMBER DEFAULT NULL ) IS
  BEGIN
 
    --=========================================
    --
Added for identifying Service Lines
    --=========================================
    IF service_number IS NOT NULL THEN
      IF option_number IS NOT NULL THEN
        IF component_number IS NOT NULL THEN
          p_concat_value := line_number || '.' ||
shipment_number || '.' ||
                            option_number || '.' ||
component_number || '.' ||
                            service_number;
        ELSE
          p_concat_value := line_number || '.' ||
shipment_number || '.' ||
                            option_number || '..' ||
service_number;
        END IF ;
    
        ---
if a option is not attached
      ELSE
        IF component_number IS NOT NULL THEN
          p_concat_value := line_number || '.' ||
shipment_number || '..' ||
                            component_number || '.' ||
service_number;
        ELSE
          p_concat_value := line_number || '.' ||
shipment_number || '...' ||
                            service_number;
        END IF ;
    
      END IF ; /*
if option number is not null */
  
      --
if the service number is null
    ELSE
      IF option_number IS NOT NULL THEN
        IF component_number IS NOT NULL THEN
          p_concat_value := line_number || '.' ||
shipment_number || '.' ||
                            option_number || '.' ||
component_number;
        ELSE
          p_concat_value := line_number || '.' ||
shipment_number || '.' ||
                            option_number;
        END IF ;
    
        ---
if a option is not attached
      ELSE
        IF component_number IS NOT NULL THEN
          p_concat_value := line_number || '.' ||
shipment_number || '..' ||
                            component_number;
        ELSE
          /*Bug2848734
- Added IF condition */
          IF (line_number IS NULL AND shipment_number IS NULL) THEN
            p_concat_value := NULL ;
          ELSE
            p_concat_value := line_number || '.' ||
shipment_number;
          END IF ;
        END IF ;
    
      END IF ; /*
if option number is not null */
  
    END IF ; /*
if service number is not null */
 
  END line_shipment_option;

END oe_concat_values;


SELECT ool.line_id
      ,to_char(ool.line_number) ||
       decode (ool.shipment_number,
              NULL ,
              NULL ,
              '.' ||
to_char(ool.shipment_number)) ||
       decode (ool.option_number,
              NULL ,
              NULL ,
              '.' ||
to_char(ool.option_number)) ||
       decode (ool.component_number,
              NULL ,
              NULL ,
              decode (ool.option_number, NULL , '.', NULL )
|| '.' ||
              to_char(ool.component_number)) ||
       decode (ool.service_number,
              NULL ,
              NULL ,
              decode (ool.component_number, NULL , '.', NULL )
||
              decode (ool.option_number, NULL , '.', NULL )
|| '.' ||
              to_char(ool.service_number)) line_num
      ,msi.segment1 item_number
      ,ool.ordered_quantity
  FROM oe_order_lines_all
ool, mtl_system_items msi
WHERE ool.header_id
= &header_id
   AND ool.ship_from_org_id
= msi.organization_id(+)
   AND ool.inventory_item_id
= msi.inventory_item_id(+)
   AND ool.item_type_code
<> 'INCLUDED' ;

销售订单行上行号LINE_SHIPMENT_OPTION_NUMBER的更多相关文章

  1. 如何用代码填充S/4HANA销售订单行项目的数量字段

    我的任务是用代码生成S/4HANA销售订单(Sales Order)的行项目,并且填充对应的quantity(数量)值. 最开始我用了下面的代码,把quantity的值写入item字段target_q ...

  2. C4C销售订单行项目价格维护方法

    需求很简单,能够创建销售订单,在行项目里添加产品,带出价格来,同时把总价显示在销售订单抬头区域. 如下图所示: 下面是具体配置. Business Configuration里,点击Sales Ord ...

  3. 【ABAP系列】SAP 销售订单的行项目里条件的增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 销售订单的行项目里条件的 ...

  4. [SAP ABAP开发技术总结]SD销售订单定价过程

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. 如何用SAP Cloud for Customer的手机App创建销售订单

    第一次启动App,设置一个初始化的pin code: 输入C4C tenant的url,用户名和密码: 登录进系统后,找到Sales Order工作中心: 可以看到系统里很多已有的销售订单了.点击屏幕 ...

  6. 销售订单(SO)-API-创建销售订单

    创建销售订单API主要注意几点: 初始化环境变量:fnd_global.apps_initialize(); mo_global.init('ONT'); mo_global.set_policy_c ...

  7. 【SD系列】SAP 查看销售订单时,报了一个错误消息,“项目不符合计划行(程序错误)”

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[SD系列]SAP 查看销售订单时,报了一个错误 ...

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

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

  9. 为什么S/4HANA的销售订单创建会触发生产订单的创建

    调用S/4HANA销售订单创建函数SD_SALES_DOCU_MAINTAIN创建一个销售订单时,会触发生产订单的创建. 销售订单的每个行项目对应一个独立的生产订单,SD_SALES_DOCU_MAI ...

随机推荐

  1. C#语言基础01

    Console.WriteLine("hello"); Console.ReadKey();// 按一个按键继续执行 string s=Console.ReadLine();//用 ...

  2. 【Python学习笔记】字符串操作

    字符串的表示 python中的字符串是一个常量,可以使用单引号'',双引号""或三引号""" """来创建一个字符串常量 ...

  3. extjs 学习笔记(二)

    EXTJS实用开发指南 1. 要使用ExtJS 框架的页面中一般包括下面几句: <link rel="stylesheet" type="text/css" ...

  4. PySpark调用自定义jar包

    在开发PySpark程序时通常会需要用到Java的对象,而PySpark本身也是建立在Java API之上,通过Py4j来创建JavaSparkContext. 这里有几点是需要注意的 1. Py4j ...

  5. MapReduce运行时出现java.lang.NoClassDefFoundError

    最近在编写MapReduce程序时遇到了一个错误,错误提示信息为: Error: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.H ...

  6. 使用Ambari部署hadoop集群

    准备工作 1. 设置sudo免密码登陆 由于CentOS安装之后,普通用户无sudo权限,故应该设置sudo权限. 参考文章:http://www.cnblogs.com/maybob/p/32988 ...

  7. SD卡中的命令CMD

    SD卡中的命令是SD控制器和SD卡之间的桥梁,它封装了SD卡的实现细节,不影响SD卡中FLASH的读写变更. 命令的长度是48位,它的字段如图: SD校准定义的CMD如下:

  8. 咏南多层开发框架支持最新的DELPHI 10 SEATTLE

    购买了咏南多层开发框架的老用户如有需要提供免费升级. 中间件

  9. Dom操作的分类

    1.DOM core 使用DOM core来获取表单对象的方法: document.getElementByTagName("form"); 使用DOM Core来获取某元素的sr ...

  10. JVM的内存管理机制

    在做Java开发的时候常用的JVM内存管理有两种,一种是堆内存,一种是栈内存.堆内存主要用来存储程序在运行时创建或实例化的对象与变量,例如:我们通过new MyClass()创建的类MyClass的对 ...