Thursday, January 22, 2026

Call API using x++ D365FO

 System.Net.HttpWebRequest    request;

System.Net.HttpWebResponse   response;

System.IO.Stream             dataStream;

System.IO.StreamReader       reader;

System.Text.Encoding         encoding = System.Text.Encoding::UTF8;

System.Text.StringBuilder    responseBuilder = new System.Text.StringBuilder();

System.Byte[]                byteArray;


str url = "API URL";

str body = "{"Sample json"}";

str accessToken = "TokenValue";

 try

 {

    

     request = System.Net.WebRequest::Create(url) as System.Net.HttpWebRequest;

     request.set_Method('POST');

     request.set_ContentType('application/json');

     System.Net.WebHeaderCollection headers = request.get_Headers();

     headers.Add('X-Access-Token', accessToken); // header changes with API access level


     byteArray = encoding.GetBytes(body);

     request.set_ContentLength(byteArray.get_Length());

     dataStream = request.GetRequestStream();

     dataStream.Write(byteArray, 0, byteArray.get_Length());

     dataStream.Close();


     response = request.GetResponse() as System.Net.HttpWebResponse;

     dataStream = response.GetResponseStream();

     reader = new System.IO.StreamReader(dataStream, encoding);

     

     str line = reader.ReadLine();

     while (!CLRInterop::isNull(line))

     {

         responseBuilder.Append(line);

         line = reader.ReadLine();

     }

     reader.Close();

     dataStream.Close();

     response.Close();


     str responseString = responseBuilder.ToString();


Newtonsoft.Json.Linq.JObject  contractData    = Newtonsoft.Json.JsonConvert::DeserializeObject(responseString );


Newtonsoft.Json.Linq.JObject  dataObject = contractData.GetValue('data');

Newtonsoft.Json.Linq.JObject  locationAddObject = dataObject.GetValue('Create');

if (locationAddObject)

{

    Newtonsoft.Json.Linq.JObject  locationObject = locationAddObject.GetValue('lineDetails');

    if (productAttributeMapping.RecId)

    {

         Str value1 =  locationObject.GetValue('id').ToString();

    }

}

}

catch

{

   error("error occurred while calling an API " );

}

-----------------------------------------

Json response:

{
    "data": {
        "Create": {
            "lineDetails": {
                "id": "gid://shopify/MetafieldDefinition/144792846553",
                "qty": "Custom",
                "name": "122361",
                "description": "Warranty"
            },
            "userErrors": []
        }
    },
    "extensions": {
        "cost": {
            "requestedQueryCost": 10,
            "actualQueryCost": 10,
            "throttleStatus": {
                "maximumAvailable": 2000.0,
                "currentlyAvailable": 1990,
                "restoreRate": 100.0
            }
        }
    }
}



Sunday, January 4, 2026

How to create json foramt using MAP class x++ D365FO




   Map myMap;
   myMap.insert("Invoice account", "INV001");
   myMap.insert("SalesId", "SO-100-001");
     Str json = JSONSerializerExtension::serializeClass(myMap);
OutPut json:
{
  "Invoice account": "INV001",
  "SalesId" :"SO-100-001"
}


Call API using x++ D365FO

 System.Net.HttpWebRequest    request; System.Net.HttpWebResponse   response; System.IO.Stream             dataStream; System.IO.StreamReade...