zoukankan      html  css  js  c++  java
  • 如何在FP中定义变量或者对资料进行增删改

    最近,工作中遇到一个问题,在dropship PO入库的时候,需要对PO进行一些检查,考虑了很多种的实现方法,最后还是改用FP来实现的,在FP的实现过程中,又用了两种不同的方法来实现,一种是定义变量,通过变量来进行操作;另外一种则是把相关资料insert到table中来进行相关操作。本文主要讲述定义变量和对数据进行增删改的两种方法。

    1、定义变量

    要在FP中定义变量,具体如下图中所示:

    image

    具体需要在什么时候定义变量,则按照自己的要求在condition处填入即可

    若需要在其余地方用到该变量的值,则可以通过以下方法来获取:

    image

    如上图中所示,红色部分的意思就是需要先取该变量中的值,然后再在后面加上“RT:”等一串字符串

    2、对table进行增删改的动作

    image

    如上图中所示,如果要对table进行增删改的话,需要在前面加上“begin”,且后面也需要加上end,上图中argument中输入的部分如下所示:

    ='begin INSERT INTO apps.xxpo_dropship_delivery(user_id,org_id,qty,rcv_transaction_id,so_line_id,item) VALUES ('||fnd_profile.value('USER_ID')||','||fnd_profile.value('mfg_organization_ID')||','||:RCV_TRANSACTION.TRANSACTION_QUANTITY||','||:rcv_transaction.rcv_transaction_id||','||xxpo_dropship_delivery_pkg.get_so_line_id(:rcv_transaction.po_line_location_id)||','''||:RCV_TRANSACTION.ITEM_NUMBER||''');
    COMMIT;
    end; '

    需要注意的地方
          1、在begin的前面有个单引号“'”,同样,在end的后面也有一个单引号,有一点点像我们平常写程序的时候拼接SQL的写法;
          2、注意最后一个地方,在insert到table中的时候,因为item栏位为varchar2的类型,所以最后有用三个单引号来实现,其中第一个单号的意思表示后面是一个转义字符,第二个单引号的意思表示这里需要插入一个单引号,最后一个单引号则是和前面的单引号进行匹配。

    不足之处

    1、因为我这个程式是在PO入库的时候检查,所以如果通过定义变量的方式来实现的话,如果PO Line过多,会导致程式出错。经过检查,发现是在FP的程式中,变量的长度不可以太长(在我的程式中,每勾选一行PO Line,变量都会增长;同理,如果取消则一行会缩短一点)

    2、如果通过insert table的方式来进行检查,如果勾选的资料比较多,会造成程式执行速度偏慢。

    所以,以上两种方法,各有各的长处和短处。

  • 相关阅读:
    2月4日学习日志
    2月3日学习日志
    2月2日学习日志
    2月1日学习日志
    Result Maps collection already contains value for ***
    mapreduce入门程序之---wordcount
    利用Git上传项目到github以及遇到的问题
    看100篇架构设计的文章,不如重构一次代码
    面试中的微服务架构
    分布式架构中数据一致性常见的几个问题
  • 原文地址:https://www.cnblogs.com/echochen/p/2311287.html
Copyright © 2011-2022 走看看