Control class
==============
class TRUpdateAssetBookController extends SysOperationServiceController
{
protected void new()
{
super(classStr(TRupdateAssetBookService), methodStr(TRupdateAssetBookService, assetBookService), SysOperationExecutionMode::Synchronous);
}
/// <summary>
/// To construct LocationRecordsController class
/// </summary>
public static TRUpdateAssetBookController construct(SysOperationExecutionMode _executionMode = SysOperationExecutionMode::Synchronous)
{
TRUpdateAssetBookController controller;
controller = new TRUpdateAssetBookController();
controller.parmExecutionMode(_executionMode);
return controller;
}
/// <summary>
/// Main method of LocationRecordsController class
/// </summary>
public static void main(Args _args)
{
TRUpdateAssetBookController controller;
controller = TRUpdateAssetBookController::construct();
controller.parmArgs(_args);
controller.startOperation();
}
/// <summary>
/// To set caption of a batch job
/// </summary>
public ClassDescription defaultCaption()
{
return "update Asset Book";
}
}
Contract class
===========
[DataContract,
SysOperationContractProcessing(classStr(TRAssetBookUIBuilder))]
public class TRupdateAssetBookContract implements SysOperationValidatable
{
List BookList;
List AssetId;
[
DataMemberAttribute("BookId"),
AifCollectionTypeAttribute('return', Types::String),
SysOperationLabelAttribute(literalstr("Book Id")),
SysOperationHelpTextAttribute(literalstr("Book Id")),
SysOperationDisplayOrderAttribute('2')
]
public List parmAssetBookId(List _BookList = BookList)
{
BookList = _BookList;
return BookList;
}
[
DataMemberAttribute("AssetId"),
AifCollectionTypeAttribute('return', Types::String),
SysOperationLabelAttribute(literalstr("Asset ID")),
SysOperationHelpTextAttribute(literalstr("AssetId")),
SysOperationDisplayOrderAttribute('1')
]
public List parmAssetId(List _AssetId= AssetId)
{
AssetId = _AssetId;
return AssetId;
}
public boolean validate()
{
boolean ok=true;
if(this.parmAssetBookId().empty())
{
ok = checkFailed("Select Book Id");
}
if(this.parmAssetId().empty())
{
ok = checkFailed("Select Asset Id");
}
return ok;
}
}
Service Class
========
class TRupdateAssetBookService extends SysOperationServiceBase
{
/// <summary>
///
/// </summary>
public void assetBookService(TRupdateAssetBookContract _Contract)
{
AssetBook AssetBookLoc;
DimensionAttributeValueSetStorage dimStorage;
DimensionValue businessUnit, property;
ListIterator bookIterator,AssetIdIterator;
List booklist = _Contract.parmAssetBookId();
List AssetId = _Contract.parmAssetId();
AssetIdIterator = new ListIterator(AssetId);
while(AssetIdIterator .more())
{
bookIterator = new ListIterator(booklist);
while(bookIterator .more())
{
while select forupdate AssetBookLoc
where AssetBookLoc.AssetId == AssetIdIterator.value() && AssetBookLoc.BookId == bookIterator.value()
{
ttsbegin;
dimStorage = DimensionAttributeValueSetStorage::find(AssetBookLoc.DefaultDimension);
businessUnit = DimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName("businessunit").RecId);
property = DimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName("Property").RecId);
if(AssetBookLoc.TRBusinessUnit != businessUnit || AssetBookLoc.TRProperty != property )
{
AssetBookLoc.TRBusinessUnit = businessUnit;
AssetBookLoc.TRProperty =property;
AssetBookLoc.update();
}
ttscommit;
}
bookIterator.next();
}
AssetIdIterator.next();
}
UI Builder
========
Public class TRAssetBookUIBuilder extends SysOperationAutomaticUIBuilder
{
DialogField bookField;
DialogField AssetID;
TRupdateAssetBookContract contract;// = new TRupdateAssetBookContract();
container con;
public void build()
{
contract = this.datacontractobject() as trupdateassetbookcontract;
bookfield = this.adddialogfield(methodstr(trupdateassetbookcontract,parmassetbookid), contract);
AssetID = this.adddialogfield(methodstr(trupdateassetbookcontract,parmAssetId), contract);
}
public void postbuild()
{
super();
bookfield = this.bindinfo().getdialogfield(this.datacontractobject(),methodstr(trupdateassetbookcontract,parmassetbookid));
bookfield.registeroverridemethod(methodstr(formstringcontrol,lookup),methodstr(trassetbookuibuilder,booklookup),this);
AssetID = this.bindinfo().getdialogfield(this.datacontractobject(),methodstr(trupdateassetbookcontract,parmAssetId));
AssetID.registeroverridemethod(methodstr(formstringcontrol,lookup),methodstr(trassetbookuibuilder,AssetIdlookup),this);
// bookfield.registeroverridemethod(methodstr(formstringcontrol, validate),methodstr(trassetbookuibuilder, bookvalidate), this);
}
public void postrun()
{
//super();
}
private void booklookup(formstringcontrol _control)
{
query query = new query();
querybuilddatasource bookqbd;
bookqbd = query.adddatasource(tablenum(assetbooktable));
bookqbd.addselectionfield(fieldnum(assetbooktable,bookid ));
syslookupmultiselectgrid::lookup(query,
_control,
_control,
_control,
con);
}
private void AssetIdlookup(formstringcontrol _control)
{
query query = new query();
querybuilddatasource bookqbd;
bookqbd = query.adddatasource(tablenum(Assettable));
bookqbd.addselectionfield(fieldnum(Assettable,AssetId ));
syslookupmultiselectgrid::lookup(query,
_control,
_control,
_control,
con);
}
}
No comments:
Post a Comment