不知道从什么时候开始,习惯用BOL MODEL来做一些东西的了。某个项目开始正式接触标准主数据的时候,开始了用MAINTAIN BAPI和BUPA的一些FM。然后在一段时间内是以此类的FM来开发的。BP相关的东西还好,标准的FM就那几个FG,感觉不是很难,而且BP相关的表也不是很多,做起来也很容易上手。后来某个机会学习了UI的东西,接触到了BOL这玩意。。。说实话,当时感觉吊炸天了啊,完全不用记多少FM是要找找RELATIONSHIP就好了。。。而且,常用的也不是很多,所以搞起来也还好。搞这个,简单的话呢是不用记太多东西的但下面几个必须要知道:

LV_HEADER_GUID = LNODE_BTADMINH->GET_PROPERTY_AS_STRING( 'GUID' )."获取实体的属性值的

LBTHEADERPARTNERSET ?= LNODE_BTADMINH->GET_RELATED_ENTITY( 'BTHeaderPartnerSet' )."根据名称找关联实体

LVALUE_NODE_ST_H ?= LBTPARTNERALL->GET_FIRST( ). 1..N关系中必须要有的循环等同于LOOP

LVALUE_NODE_ST_H ?= LBTPARTNERALL->GET_NEXT( ). 1..N关系中必须要有的循环等同于ENDLOOP

current->set_property(  EXPORTING iv_attr_name = 'STATUS'  iv_value = ‘E0007’ )."给实体的属性塞值

至于怎么开始怎么结束完全根据自己的程序功能来决定。

BOL MODEL简例)

 ENTITY NAME       ENTITY               Attribute

oneorder     (model)
btorder    (root)      
btadminh           BTOrderHeader
btitems            BTHeaderItemsExt
BTAdminI           BTOrderItemAll
BTProductI         BTItemProductExt         unit
BTSchedlinI        BTItemSchedlinExt
BTSchedlinI        BTSchedlinFirst         quantity
BTStatusI          BTItemStatusSet
BTStatus           BTStatusICurrent

ENTITY从上到下依次是REL来着。。。。简单的一个例子。

下面是一段获取国家的代码仅供参考,分析上面的东西:

IF LNODE_BTADMINH IS BOUND.
    LBTHEADERPARTNERSET ?= LNODE_BTADMINH->GET_RELATED_ENTITY( 'BTHeaderPartnerSet' ).
    IF LBTHEADERPARTNERSET IS BOUND.
      LBTPARTNERALL ?= LBTHEADERPARTNERSET->GET_RELATED_ENTITIES( IV_RELATION_NAME = 'BTPartnerAll' ).
      IF LBTPARTNERALL IS BOUND.
         LVALUE_NODE_ST_H ?= LBTPARTNERALL->GET_FIRST( ).
         CLEAR LV_PARTNER_FCT.
         WHILE LVALUE_NODE_ST_H IS BOUND.
            LV_PARTNER_FCT = LVALUE_NODE_ST_H->GET_PROPERTY_AS_STRING( 'PARTNER_FCT' ).
            IF LV_PARTNER_FCT = 'ZCUTM'.
               EXIT.
            ENDIF.
            LVALUE_NODE_ST_H ?= LBTPARTNERALL->GET_NEXT( ).
         ENDWHILE.
         IF LV_PARTNER_FCT = 'ZCUTM' AND LVALUE_NODE_ST_H IS BOUND.
            LBTPARTNERADDRESS_H ?= LVALUE_NODE_ST_H->GET_RELATED_ENTITY( 'BTPartnerAddress' ).
            CLEAR LWA_ADRC.
            IF LBTPARTNERADDRESS_H IS BOUND.
               LWA_ADRC-COUNTRY = LBTPARTNERADDRESS_H->GET_PROPERTY_AS_STRING( 'COUNTRY' ).
            ENDIF.
         ENDIF.
      ENDIF.
    ENDIF.
  ENDIF.

UI-简答的BOL的取值塞值的更多相关文章

  1. mybatis返回list很智能很简答的,只需要配置resultmap进行类型转换,你dao方法直接写返回值list<对应的object>就行了啊

    mybatis返回list很智能很简答的,只需要配置resultmap进行类型转换,你dao方法直接写返回值list<对应的object>就行了啊 dao方法 public List< ...

  2. 简答一波 HashMap 常见八股面试题 —— 算法系列(2)

    请点赞,你的点赞对我意义重大,满足下我的虚荣心. Hi,我是小彭.本文已收录到 GitHub · Android-NoteBook 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注 ...

  3. linux系统运维面试题简答

    1.     简述常用高可用技术 解答: Keepalived:Keepalived是一个保证集群高可用的服务软件,用来防止单点故障,使用VRRP协议实现.在master和backup之间通过mast ...

  4. 【Python】安装python包时遇到"error: Microsoft Visual C++ 9.0 is required"的简答

    简答 在Windows下用pip安装Scrapy报如下错误, error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall ...

  5. [转载]ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值

    原文地址:http://www.cnblogs.com/yxyht/archive/2013/03/02/2939883.html ASP.NET中TextBox控件设置ReadOnly=" ...

  6. IE10中session失效取不到值的问题

    在eworkflow工作流,ebiao报表,eform自定义表单产品升级到IE10的时候,系统登录后,总是会取不到session中的值. for j2ee版本和for dotnet版本都一样取不到值. ...

  7. @Value取不到值引出的spring的2种配置文件applicationContext.xml和xxx-servlet.xml

    项目中经常会用到配置文件,定义成properties的形式比较常见,为了方便使用一般在spring配置文件中做如下配置: <context:property-placeholder ignore ...

  8. struts2下s:iterator取不出值

    1:问题起因:通过action方法连接数据库取出Arraylist集合,在前台页面遍历显示无数据,用s:debug查看 stack里有值,用了各种方法,包括session传值,但是仍然取不出来. 2: ...

  9. [转]用Linq取CheckBoxList選取項目的值

    本文转自:http://www.dotblogs.com.tw/hatelove/archive/2011/11/17/linq-checkboxlist-items-selected-values. ...

随机推荐

  1. DJANGO基础学习之转义总结:escape,autoescape,safe,mark_safe

    何谓转义?就是把html语言的关键字过滤掉.例如,<div>就是html的关键字,如果要在html页面上呈现<div>,其源代码就必须是<div> PS:转义其实就 ...

  2. [HDOJ2717]Catch That Cow

    Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  3. 创建XML

    //创建XML XElement xelement = new XElement("request", new XElement("head", new XEl ...

  4. FLASH CC 2015 CANVAS 中 createjs 移除绑定事件

    myBtn.addEventListener("click", function(evt) { // do stuff... evt.remove(); // removes th ...

  5. mysql: 1045 access denied for user 'root'@'localhost' using password yes

    原因是:root的密码错误了. 解决思路:关闭mysql服务,重新启动mysql服务,启动mysql的时候,指定不需要校验密码.然后登陆mysql,修改密码,退出.再重新启动mysql服务. 1.关闭 ...

  6. Android Menu菜单使用

    如上图右上角,菜单选项的编辑,第一种代码实现方式如下: package com.example.menu; import android.os.Bundle; import android.app.A ...

  7. Linux小知识

    1,ubuntu下,开机如何进行命令行? 图形模式下,首先进入终端: 1. 找到 /etc/default/grub文件: 2. 修改 GRUB_CMDLINE_LINUX_DEFAULT=" ...

  8. POCO C++库学习和分析——任务

    1.任务的定义 任务虽然在Poco::Foundation库的目录中被单独划出来,其实可以被看成线程的应用,放在线程章节.首先来看一下Poco中对任务的描述: *task主要应用在GUI和Sever程 ...

  9. 修正ios h5上传图时的图片方向问题

     .ios上传会在exif中带一个 Orientation的属性,这个属性在windows中不会生效,在ios浏览器中会生效,造成图片在windows资源管理器中与ios浏览器中方向不一致  为了用户 ...

  10. Android GestureDetector方法详解

    为了加强点击.拖动响应事件,Android提供了GestureDetector手势识别类.通过GestureDetector.OnGestureListener来获取当前被触发的操作手势(Single ...