一些我工作中经常使用的C4C ABSL代码片段

(1) 和query相关的

Query Related

import AP.Common.GDT;
import AP.CRM.Global;
var SalesOrderquery = SalesOrder.QueryByElements;
var queryParameter = SalesOrderquery.CreateSelectionParams();
var queryResult;
queryParameter.Add(SalesOrderquery.ID.Content,"I", "EQ","1686");
queryResult = SalesOrderquery.Execute(queryParameter);
foreach( item in queryResult )
     item.ext_test_for_lock = "change by Service Order";

(2) 如何定义集合 - collectionof的用法

import ABSL;
import AP.Common.GDT

var mycollection : collectionof SalesOrder.BuyerID; // internal table

(3) elementof的用法,集合类型的基本操作


```abap
var mycollection: collectionof SalesOrder.BuyerID;
var result: collectionof SalesOrder.BuyerID;

var item_one: elementof SalresOrder.BuyerID;
var item_two: elementof SalresOrder.BuyerID;
var collection: collectionof SalesOrder.SystemAdministrativeData;

item_one.content = "A";
mycollection.Add( item_one);

item_one.content = "B";
mycollection.Add( item_one);
mycollection.Count();
item_two = mycollection.getFirst();
item_two.Clear();
item_two = mycollection.getLast();
item_two.Clear();
collection.OrderBy( time=>time.LastChangeDateTime);
result = mycollection.Where( test=>test.content == "A" );

(4) BO retrieve的用法

```abap
var SalesOrderID : elementsof SalesOrder.ID; 
SalesOrderID.content = "12";
SalesOrder.Retrieve( SalesOrderID );

<node Instance> = <BusinessObject>.Retrieve(<alternativeKey>);
<Collection of node instances> = <BusinessObject>.Retrieve(<collection of alternativeKeys>);

(5) ABSL里字符串的用法

import ABSL;
var test;
test = String.Substring(“Test”,2,2);

(6) C4C后台一些reuse service的用法

import ABSL;
var time;
time = Context.GetCurrentGlobalDateTime( );

(7) 集合类型的查询操作

var mySearchValues : elementsof myBO.Item;
var collectionA;
mySearchValues.ItemID.content = “Bill”;
collectionA = this.Where(n => n.ItemID == mySearchValues.ItemID || !(n.ItemID.content < 1000 && n.ItemID.content == “Fred”));

(8) DistinctBy操作

.DistinctBy().ThenBy();

The DistinctBy statement deletes duplicate lines in collections by comparing content of defined components.
An anonymous function (lambda expression) is used to refer to the components of the collection line type.

collection.DistinctBy(n => n.BUYER_NAME.CONTENT).ThenBy(n => n.STATUS).ThenBy(n => n.TYPE_CODE);

count操作:

= .Count();

(9) 如何用BODL(Business Object Definition Language)显式定义BO的DU - deployment unit

[DeploymentUnit(CustomerRelationshipManagement)] businessobject BonusPlan {
element ID : Identifier;
}

[DeploymentUnit(CustomerRelationshipManagement)]
[Extension]
businessobject BonusPlan {
element ID : Identifier;
}

(10) 如何定义DO - Dependent objec

[DependentObject(TextCollection)] node ItemTextCollection;

(11) BODL里一些常用的注解

  1. [AlternativeKey] element AssigmentDate : Date;
  2. [CrossDeploymentUnit] association toBusinessPartner to BusinessPartner;
  3. [RelevantForAccessControl] association toBusinessPartner to BusinessPartner;
  4. [DependentObject(TextCollection)] node TextCollection;
  5. [Extension] businessobject SalesOrder { … }
  6. [DeploymentUnit(CRM)] businessobject SunnyDay { … }
  7. [DependentObject(TextCollection)] [MultipleTexts] node TextCollection; //second annotation
发布了6267 篇原创文章 · 获赞 616 · 访问量 98万+

猜你喜欢

转载自blog.csdn.net/i042416/article/details/103933037