datadog trace azure , harshit modified code. appied

 import com.sap.gateway.ip.core.customdev.util.Message;


def Message processData(Message message) {

    // Retrieve the body, though it's not used in this case

    def body = message.getBody();


    // Get the headers from the message

    def headers = message.getHeaders();



  message.setHeader('sourceType', json.stockMovement.sourceType)

    message.setHeader('destinationType', json.stockMovement.destinationType)

    message.setHeader('scenario', json.stockMovement.scenario)

    message.setHeader('sourceLocation', json.stockMovement.source.location)

    message.setHeader('destinationLocation', json.stockMovement.destination.location)

    message.setHeader('externalUniqueReference', json.stockMovement.externalUniqueReference)

    

    message.setHeader('destinationSSCCNumber', json.stockMovement.destinationStockPosition.ssccNumber)

    message.setHeader('destinationMaterialReference', json.stockMovement.destinationStockPosition.materialReference)

    message.setHeader('destinationBatch', json.stockMovement.destinationStockPosition.batch)

    

    message.setHeader('sourceSSCCNumber', json.stockMovement.sourceStockPosition.ssccNumber)

    message.setHeader('sourceMaterialReference', json.stockMovement.sourceStockPosition.materialReference)

    message.setHeader('sourceBatch', json.stockMovement.sourceStockPosition.batch)  

    message.setHeader('sourceGlobalLocationNumber', json.stockMovement.source.globalLocationNumber)


/*

stockMovement sourceType stockMovement -> sourceType

stockMovement destinationType stockMovement -> destinationType

stockMovement scenario stockMovement  -> scenario

stockMovement location stockMovement->destination->location

stockMovement location stockMovement->source->location

stockMovement externalUniqueReference stockMovement  -> externalUniqueReference

stockMovement ssccNumber stockMovement->destinationStockPosition->ssccNumber

stockMovement materialReference stockMovement->destinationStockPosition->materialReference

stockMovement globalLocationNumber stockMovement->source->globalLocationNumber

stockMovement batch stockMovement->destinationStockPosition->batch

stockMovement ssccNumber stockMovement->sourceStockPosition->ssccNumber

stockMovement materialReference stockMovement->sourceStockPosition->materialReference

stockMovement batch stockMovement->sourceStockPosition->batch*/




    // Retrieve the values based on the provided mapping

   def sourceType = message.getHeader('sourceType')

def destinationType = message.getHeader('destinationType')

def scenario = message.getHeader('scenario')

def sourceLocation = message.getHeader('sourceLocation')

def destinationLocation = message.getHeader('destinationLocation')

def externalUniqueReference = message.getHeader('externalUniqueReference')


def destinationSSCCNumber = message.getHeader('destinationSSCCNumber')

def destinationMaterialReference = message.getHeader('destinationMaterialReference')

def destinationBatch = message.getHeader('destinationBatch')


def sourceSSCCNumber = message.getHeader('sourceSSCCNumber')

def sourceMaterialReference = message.getHeader('sourceMaterialReference')

def sourceBatch = message.getHeader('sourceBatch')

def sourceGlobalLocationNumber = message.getHeader('sourceGlobalLocationNumber')


    // Additional fields

    def Scope = headers.get("Scope");

    def Direction = headers.get("Direction");

    def TerminalState = headers.get("TerminalState");

    def Destination = headers.get("Destination");

    def ProcessingState = headers.get("ProcessingState");


    // Create a combined header string

    def combinedHeader = ""


    def addHeaderProperty = { key, value ->

        if (value != null && value != "") {

            combinedHeader += "\"additionalProperty." + key + "\":  \"" + value + "\", ";

        } else {

            combinedHeader += "\"additionalProperty." + key + "\": \"\", ";  // Add empty string if null or empty

        }

    }


    // Add properties to combined header

    addHeaderProperty("Scope", Scope);

    addHeaderProperty("Direction", Direction);

    addHeaderProperty("TerminalState", TerminalState);

    addHeaderProperty("Destination", Destination);

    addHeaderProperty("ProcessingState", ProcessingState);

    addHeaderProperty("sourceType", sourceType);

    addHeaderProperty("destinationType", destinationType);

    addHeaderProperty("destinationLocation", destinationLocation);

    addHeaderProperty("sourceLocation", sourceLocation);

    addHeaderProperty("externalUniqueReference", externalUniqueReference);

    addHeaderProperty("destinationSSCCNumber", destinationSSCCNumber);

    addHeaderProperty("materialReferenceDest", materialReferenceDest);

    addHeaderProperty("globalLocationNumber", globalLocationNumber);

    addHeaderProperty("batchDest", batchDest);

    addHeaderProperty("sourceSSCCNumber", sourceSSCCNumber);

    addHeaderProperty("materialReferenceSrc", materialReferenceSrc);

    addHeaderProperty("batchSrc", batchSrc);

    addHeaderProperty("scenario", scenario);


    // Trim any trailing comma and space

    combinedHeader = combinedHeader.trim();

    if (combinedHeader.endsWith(",")) {

        combinedHeader = combinedHeader[0..-1];  // Remove trailing comma

    }


    // If combinedHeader is empty, set the default value to the new header

    if (combinedHeader.isEmpty()) {

        message.setHeader("combinedProperties", "");

    } else {

        message.setHeader("combinedProperties", combinedHeader);

    }


    return message;

}

Popular posts from this blog

SAP CPI : camle expression in sap cpi , cm, router, filter and groovy script. format

pss book: గురు ప్రార్థనామంజరి . completed 21st july 2024

pss book : శ్రీకృష్ణుడు దేవుడా, భగవంతుడా completed , second review needed. 26th April 2024