不知道从什么时候开始,习惯用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. session 登陆浏览,并实现session注销登陆

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  2. 用@RequestMapping映射请求

    DispatcherServlet接受一个web请求之后,将请求发送给@Controller注解声明的不同控制器类. 这个调度过程依赖控制器类及其处理程序方法中声明的各种@RequestMapping ...

  3. iOS - Swift 与 Objective-C 互相操作

    前言 在 Swift 语言中,我们可以使用 Objective-C.C 语言编写代码,我们可以导入任意用 Objective-C 写的 Cocoa 平台框架.Objective-C 框架或 C 类库. ...

  4. 跨代的对决 英特尔i7-6700HQ对比i7-4720HQ性能测试

    http://itianti.sinaapp.com/index.php/cpu 跨代的对决 英特尔i7-6700HQ对比i7-4720HQ性能测试 2015-10-13 19:46:31 来源:电脑 ...

  5. mac下pmset的使用方法

    在终端输入:pmset -g custom    这个命令可以显示系统所有的电源设置 lidwake: 当屏幕掀开的时候唤醒Mac,1是开启  0是关闭autopoweroff: 如果Mac处于睡眠状 ...

  6. Mono for Android布局控件属性小结

    1. layout_weight 用于给一个线性布局中的诸多视图的重要度赋值. 所有的视图都有一个layout_weight值,默认为零,意思是需要显示 多大的视图就占据多大的屏幕空 间.若赋一个高于 ...

  7. linux install sublime_text3

    ubuntu & debian: (baidu or google) 1). download ***.deb to install inux系统下怎么安装.deb文件? deb 是 ubun ...

  8. Android 让输入框输入指定字符的办法

    让输入框输入指定字符的办法 有一个需求 让输入密码的时候只能输入数字字母可见字符 不能输入中文 之前还以为要写代码 还来发现有一个属性可以直接实现 <EditText android:layou ...

  9. golang chan 超时

    golang chan 超时 Posted on 2013-12-24 13:03 oathleo 阅读(4227) 评论(0)  编辑  收藏 package main import (    &q ...

  10. Java troubleshooting guide

    http://www.oracle.com/technetwork/java/javase/toc-135973.html --不同的 OutOfMemoryError/内存溢出,以及相关的解决