销售订单行上行号: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/c++ 数字转成字符串, 字符串转成数字

    c/c++ 数字转成字符串, 字符串转成数字 ------转帖 数字转字符串: 用C++的streanstream: #include <sstream> #Include <str ...

  2. 【IDE】SharpDevelop

    SharpDevelop 这个轻型的开发工具支持多种程序语言,包括C#.java以及VB.NET,同时还支持多种语言界面,象任何爱好者开发的工具一样.这个编辑器的界面风格类似于Office XP以及V ...

  3. poj 1552 Doubles

    #include <stdio.h> #include <stdlib.h> ]; int cmp(const void *a, const void *b) { return ...

  4. Android将ScrollView移动到最底部

    转载地址:http://hi.baidu.com/gaogaf/item/36e8a4c8ac6ba31050505848 scrollTo方法可以调整view的显示位置.在需要的地方调用以下方法即可 ...

  5. LINQ标准查询操作符(五)

    十二.相等操作符 如果两个序列的对应元素相等且这两个序列具有相同数量的元素,则视这两个序列相等. SequenceEqual方法通过并行地枚举两个数据源并比较相应元素来判断两个序列是否相等.如果两个序 ...

  6. Unity3D Script Keynote

    [Unity3D Script Keynote] 1.创建GameObject if(GUILayout.Button("创建立方体",GUILayout.Height(50))) ...

  7. Mongo技巧-连接数据库与修改表结构

    1. 连接非本机数据库 mongo.exe之后直接输入ip地址即可 mongo.exe 192.168.163.203 2. 修改表结构 mongo里面没有表结构这个概念,现在采用类似关系型数据库的形 ...

  8. STL学习系列九:Map和multimap容器

    1.map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. map中key值是唯一的.集合中的元素按一定的顺 ...

  9. 程序设计第三次作业--C++计算器初始部分

    面向对象程序设计作业3--C++计算器初始部分 Github 链接:https://github.com/luojingzhao/object-oriented/tree/master/calcula ...

  10. manacher算法(转载)

    原网址:http://blog.sina.com.cn/s/blog_70811e1a01014esn.html manacher算法是我在网上无意中找到的,主要是用来求某个字符串的最长回文子串.不过 ...