Friday, May 31, 2024

Create Custom service using x++ in D365F&O.

 

Request class:

[DataContractAttribute] class testRequestSimple { private str dataAreaId,custId; [DataMember("DataAreaId")] public str parmDataAreaId(str _value = dataAreaId) { if(!prmIsDefault(_value)) { dataAreaId = _value; } return dataAreaId; } [DataMember("CustomerId")] public str parmCustId(str _custId = custId) { if(!prmIsDefault(_value)) { custId =_custId; } return custId; } }

Response class:

[DataContractAttribute]

class testResponse

{

    private boolean success;

private str  errorMessage;

    private str  debugMessage;

[DataMember("ErrorMessage")]

 public str parmErrorMessage(str _value = errorMessage)

    {

        if (!prmIsDefault(_value)

        {

errorMessage = _value;

        }

    return errorMessage;

    }

[DataMember("Success")]

 public Boolean parmSuccess(Boolean _value = success)

  {

      if (!prmIsDefault(_value))

        {

            success = _value;

        }

        return success;

    }

[DataMember("DebugMessage")]

 public str parmDebugMessage(str _value = debugMessage)

    {

        if (!prmIsDefault(_value)

        {

debugMessage = _value;

        }

        return debugMessage;

}

}

Service class:

public class testCustomServicedataService

{

    public testResponse Customers(testRequestSimple_request)

    {

        var response = new TestResponse();

        changecompany(_request.parmDataAreaId())

        {

            try

            {

             // write the business logic here.

                response.parmDebugMessage("Hello World");

                response.parmSuccess(true);

            }

            catch (Exception::CLRError)

            {

                System.Exception interopException = CLRInterop::getLastException();

                response.parmSuccess(false);

                response.parmErrorMessage(interopException.ToString());

            }

            return response;

        }

    }

}

Create service group:




Create service:



Test the Service From Postman:

     https://<D365 URL>/api/services/TestCustomServiceGroup/TestCustomService/customers

 In this example the Postman body:

{

     "_request" :

   {

    "DataAreaId": "INMF",

   "CustomerId":"001"

    }

}





No comments:

Post a Comment