• Skip to main content
  • Skip to primary sidebar
  • Home
  • About
  • Recommended Readings
    • 2022 Book Reading
    • 2023 Recommended Readings
    • Book Reading 2024
    • Book Reading 2025
  • Supply Chain Management Guide
  • PKM
  • Microsoft Excel

Ali Raza Zaidi

A practitioner’s musings on Dynamics 365 Finance and Operations

Exploring the little complex custom service in Dynamics Ax 2012

January 7, 2013 by alirazazaidi

In this example, we explore a complex custom services. Which perform a insert , update, delete and return all the records form table. If you interested in basics of custom services you have to visit my pervious post on this topic
http://tech.alirazazaidi.com/explore-the-custom-service-in-dynamics-ax-2012/.

 

For this example, I create a very simple custom table . This table contains following fields.

FieldName dataType
Roll Number string
FistName string
LastName string
Address string
DateOfBirth date.

For Data contract we have to create a new class. On class declaration method you have to put the attribute with name like as [DataContractAttribute]

[DataContractAttribute]
class StudnetDC
{
str rollNumber;
str address;
date dateOfBirth;
str firstName;
str lastName;

}

For each field I have to declare a separate param method with are equivalent to C# or Vb.net property method like as We have to use again a attribute on each method [ DataMemberAttribute(‘Parameter Name’)]


[ DataMemberAttribute('Address')]
public str paramAddress(str _address=address)
{
address=_address;
return address;
}


[ DataMemberAttribute('Date of Birth')]
public date paramDateOfBirth(date _dateOfBirth=dateOfBirth)
{
dateOfBirth=_dateOfBirth;
return dateOfBirth;
}


[ DataMemberAttribute('First Name')]
public str paramFirstName(str _firstName=firstName)
{
firstName= _firstName;
return firstName;
}


[ DataMemberAttribute('Last Name')]
public str paramLastName(str _lastName=lastName )
{
lastName= _lastName;
return lastName;
}


[ DataMemberAttribute('RollNumber')]

public str paramRollNumber(str _rollNumber= rollNumber)
{
rollNumber= _rollNumber;
return _rollNumber;
}

Then I create a service class. On each method I have to use attributes for passing parameter to method in my case, insert method will take parameter of contract class as follow.


[SysEntryPointAttribute(true),
AifCollectionTypeAttribute('Studentobj', Types::Class)]

public void InsertStudent(StudnetDC Studentobj)
{

Student studentbuf;
studentbuf.RollNumber = Studentobj.paramRollNumber();
studentbuf.FirstName = Studentobj.paramFirstName();
studentbuf.LastName = Studentobj.paramLastName();
studentbuf.DateOfBirth = Studentobj.paramDateOfBirth();
studentbuf.Address = Studentobj.paramAddress();
studentbuf.insert();

}

 


[SysEntryPointAttribute(true),
AifCollectionTypeAttribute('Studentobj', Types::Class)]
public void UpdateStudent(StudnetDC Studentobj)
{

Student studentbuf;

while select forUpdate studentbuf
where studentbuf.RollNumber== Studentobj.paramRollNumber()
{
studentbuf.RollNumber = Studentobj.paramRollNumber();
studentbuf.FirstName = Studentobj.paramFirstName();
studentbuf.LastName = Studentobj.paramLastName();
studentbuf.DateOfBirth = Studentobj.paramDateOfBirth();
studentbuf.Address = Studentobj.paramAddress();

}

}



[SysEntryPointAttribute(true),
AifCollectionTypeAttribute('Studentobj', Types::Class)]

public void DeleteStudent(StudnetDC Studentobj)
{

Student studentbuf;

while select forUpdate studentbuf
where studentbuf.RollNumber== Studentobj.paramRollNumber()
{
studentbuf.delete();

}

}

To return a list form Class method we have to use following attribute on method.
[SysEntryPointAttribute(true),
AifCollectionTypeAttribute(‘return’, Types::Class, classStr(MyParam))]

[SysEntryPointAttribute(true),
AifCollectionTypeAttribute('return', Types::Class, classStr(StudnetDC))]
public list SelectStudent()
{
StudnetDC studentobj;
List _StudentList = new List(Types::Class);
Student studentbuf;
while select * from studentbuf

{
studentobj = new StudnetDC();
studentobj.paramFirstName( studentbuf.FirstName);
studentobj.paramLastName(studentbuf.LastName);
studentobj.paramRollNumber(studentbuf.RollNumber);
studentobj.paramAddress(studentbuf.Address);
studentobj.paramDateOfBirth(studentbuf.DateOfBirth);
_StudentList.addEnd(studentobj);

}
return _StudentList;
}

Now compile the both classes. Service node.

Filed Under: Dynamics AX 2012 Tagged With: Aif Services, Dynamics Ax 2012

Primary Sidebar

About

I am Dynamics AX/365 Finance and Operations consultant with years of implementation experience. I has helped several businesses implement and succeed with Dynamics AX/365 Finance and Operations. The goal of this website is to share insights, tips, and tricks to help end users and IT professionals.

Legal

Content published on this website are opinions, insights, tips, and tricks we have gained from years of Dynamics consulting and may not represent the opinions or views of any current or past employer. Any changes to an ERP system should be thoroughly tested before implementation.

Categories

  • Accounts Payable (2)
  • Advance Warehouse (2)
  • Asset Management (3)
  • Azure Functions (1)
  • Books (6)
  • Certification Guide (3)
  • Customization Tips for D365 for Finance and Operations (62)
  • D365OF (59)
  • Data Management (1)
  • database restore (1)
  • Dynamics 365 (58)
  • Dynamics 365 for finance and operations (135)
  • Dynamics 365 for Operations (165)
  • Dynamics AX (AX 7) (134)
  • Dynamics AX 2012 (274)
  • Dynamics Ax 2012 Forms (13)
  • Dynamics Ax 2012 functional side (16)
  • Dynamics Ax 2012 Reporting SSRS Reports. (31)
  • Dynamics Ax 2012 Technical Side (52)
  • Dynamics Ax 7 (65)
  • Exam MB-330: Microsoft Dynamics 365 Supply Chain Management (7)
  • Excel Addin (1)
  • Favorites (12)
  • Financial Modules (6)
  • Functional (8)
  • Implementations (1)
  • Lifecycle Services (1)
  • Logseq (4)
  • Management Reporter (1)
  • Microsoft Excel (4)
  • MS Dynamics Ax 7 (64)
  • MVP summit (1)
  • MVP summit 2016 (1)
  • New Dynamics Ax (19)
  • Non Defined (9)
  • Note taking Apps (2)
  • Obsidian (3)
  • Personal Knowledge Management (2)
  • PKM (13)
  • Power Platform (6)
  • Procurement (5)
  • procurement and sourcing (5)
  • Product Information Management (4)
  • Product Management (6)
  • Production Control D365 for Finance and Operations (10)
  • Sale Order Process (10)
  • Sale Order Processing (9)
  • Sales and Distribution (5)
  • Soft Skill (1)
  • Supply Chain Management D365 F&O (3)
  • Tips and tricks (278)
  • Uncategorized (165)
  • Upgrade (1)
  • Web Cast (7)
  • White papers (4)
  • X++ (7)

Copyright © 2025 · Magazine Pro On Genesis Framework · WordPress · Log in