x++ code to create Service class and helper in x++ through postman
step1 : Create a Contract class
code:
[DataContractAttribute("BAS_SalesOrderContract")]
class BAS_SalesOrderContract
{
// these are the two parameters we will pass in the request body of the postman
str salesStatus;
str dataAreaId;
[DataMemberAttribute("salesStatus")]
public str parmSalesStatus(str _salesStatus = salesStatus)
{
salesStatus = _salesStatus;
return salesStatus;
}
[DataMemberAttribute("dataAreaId")]
public str parmdataAreaId(str _dataAreaId = dataAreaId)
{
dataAreaId = _dataAreaId;
return dataAreaId;
}
}
Step2: Create a Response Contract class
// In this class we will write what is the response we want from the postman for the requested fields in the contract class
code :
[DataContractAttribute("BAS_SalesOrderContractResponse")]
class BAS_SalesOrderContractResponse
{
SalesId salesId;
SalesName custName;
str salesStatus;
[DataMember('SalesId')]
public SalesId parmSalesId(SalesId _salesId = salesId)
{
salesId = _salesId;
return salesId;
}
[DataMember('SalesName')]
public SalesName parmcustName(SalesName _custName = custName)
{
custName = _custName;
return custName;
}
[DataMember('salesStatus')]
public str parmsalesStatus(str _salesStatus = salesStatus)
{
salesStatus = _salesStatus;
return salesStatus;
}
private static BAS_SalesOrderContractResponse construct()
{
return new BAS_SalesOrderContractResponse();
}
public static BAS_SalesOrderContractResponse newFromTableRecord(SalesTable _salesTable)
{
BAS_SalesOrderContractResponse contract = BAS_SalesOrderContractResponse::construct();
contract.parmSalesId(_salesTable.SalesId);
contract.parmCustName(_salesTable.SalesName);
contract.parmSalesStatus(enum2Str(_salesTable.SalesStatus));
return contract;
}
}
Step3 : Create a helper class with helper method
Helper class is used to write the business logic
[AifCollectionTypeAttribute('return', Types::Class, classStr(BAS_SalesOrderContractResponse))]
public List getallsalesordersbystatus(str _salesstatus , str _dataAreaId)
{
str salesStatus = _salesstatus;
str dataAreaId = _dataAreaId;
List salesOrderList = new List(Types::Class);
changecompany(dataAreaId)
{
SalesTable salesOrderTable;
while select * From salesOrderTable where salesOrderTable.SalesStatus==str2Enum(salesOrderTable.SalesStatus,salesStatus)
{
BAS_SalesOrderContractResponse salesOrderData = new BAS_SalesOrderContractResponse();
salesOrderData = BAS_SalesOrderContractResponse::newFromTableRecord(salesOrderTable);
salesOrderList.addEnd(salesOrderData);
}
return salesOrderList;
}
}
Comments
Post a Comment