I have the gp service code which written in arcpy, with this code we are processing different countries but for only CANADA country its postal code truncating from 6-digit to 3-digit. we are having 3 .shp file from there we are extracting data and pass as a input and updating attribute table as target field POSTAL_CD in arcgis pro Please find the attached screenshot and specific code. In our code we are having createPostalBoundary() and createPostalLocation() inside this two function we are calling below function. Thank You



def fieldMapping(shpFileFeatures,geometryType,configFieldMapping,outputFeatureClassLoc,tempFeatureClass,layerName,templateFeatureClass,targetFeatureClass):
debugMsg("Start Field mapping with the input data")
if Config.get(Region,"Query")!="None":
arcpy.MakeFeatureLayer_management(shpFileFeatures,layerName,Config.get(Region,"Query"))
else:
arcpy.MakeFeatureLayer_management(shpFileFeatures,layerName)
if Region=="CANADA" and targetFeatureClass==POSTAL_BOUNDARY_NON_MODIFIED:
arcpy.AddMessage(layerName)
arcpy.AddJoin_management(layerName,"POSTCODE", inPnt_Features, "POSTCODE", "KEEP_COMMON")
arcpy.FeatureClassToFeatureClass_conversion(layerName, arcpy.env.workspace,"joinfeature0")
arcpy.MakeFeatureLayer_management("joinfeature0",layerName)
if inPnt6digit_Features!="" and geometryType=="POINT" and targetFeatureClass!=POSTAL_LOCATION_6DIGIT:
debugMsg("Joining the 6digit postal codes with the 3 digit postal codes")
if Region=="SINGAPORE":
arcpy.FeatureClassToFeatureClass_conversion(inPnt6digit_Features, arcpy.env.workspace,"joinfeature3")
addJoinField("joinfeature3","POST_MAIN","POST_FULL")
arcpy.CalculateField_management("joinfeature3", "POST_FULL", "!POST_FULL!.zfill(6)", "PYTHON_9.3")
arcpy.MakeFeatureLayer_management("joinfeature3","6digitPostalcode")
arcpy.AddField_management("6digitPostalcode", "ADMIN5", "TEXT", "", "", "50")
arcpy.AddJoin_management("6digitPostalcode","POST_MAIN", layerName, "POSTCODE", "KEEP_ALL")
fcName=getFcName(inPnt_Features)
arcpy.CalculateField_management("6digitPostalcode", "ADMIN5", "!"+ fcName +".ADMIN5!", "PYTHON_9.3")
arcpy.RemoveJoin_management("6digitPostalcode")
else:
arcpy.MakeFeatureLayer_management(inPnt6digit_Features,"6digitPostalcode")
arcpy.AddJoin_management("6digitPostalcode","POST_MAIN", layerName, "POSTCODE", "KEEP_ALL")
layerName ="6digitPostalcode"
arcpy.FeatureClassToFeatureClass_conversion(layerName, arcpy.env.workspace,"joinfeature0")
#if Region=="SINGAPORE":
#updateUnjoin("joinfeature0",["ADMIN1","ADMIN3","ADMIN4","ADMIN5","POSTCODE"])
arcpy.MakeFeatureLayer_management("joinfeature0",layerName)
if arcpy.Exists(targetFeatureClass):
arcpy.Delete_management(targetFeatureClass)
arcpy.Copy_management(templateFeatureClass, targetFeatureClass, "FeatureClass")
debugMsg("Copied source template feature class schema")
for field in arcpy.ListFields(layerName):
for x in range(0, len(configFieldMapping)):
if(field.type !='Geometry' and field.type !='OID' and field.name.find("OBJECTID")==-1):
if(field.name==configFieldMapping[x]["reference_field_name"]):
fm1 = arcpy.FieldMap()
fm1.addInputField(layerName, field.name)
field2 = fm1.outputField
field2.name = configFieldMapping[x]["target_field_name"]
fm1.outputField = field2
fms1.addFieldMap(fm1)
debugMsg("field/ref name" + field.name + " target name:" + configFieldMapping[x]["target_field_name"])
debugMsg("Appending the Source data.....")
arcpy.Append_management(layerName, tempFeatureClass, "NO_TEST", fms1, "")
debugMsg("Appending the Source data to feature class completed..")
if arcpy.Exists("joinfeature0"):
arcpy.Delete_management("joinfeature0")
if arcpy.Exists("joinfeature3"):
arcpy.Delete_management("joinfeature3")