(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里一些常用的注解
- [AlternativeKey] element AssigmentDate : Date;
- [CrossDeploymentUnit] association toBusinessPartner to BusinessPartner;
- [RelevantForAccessControl] association toBusinessPartner to BusinessPartner;
- [DependentObject(TextCollection)] node TextCollection;
- [Extension] businessobject SalesOrder { … }
- [DeploymentUnit(CRM)] businessobject SunnyDay { … }
- [DependentObject(TextCollection)] [MultipleTexts] node TextCollection; //second annotation