I'm building a widget in a WAB template that sends a geotagged photo to a Python toolbox GP service to create a point with the coordinates and attach the photo.
I send the request to upload:
var requestID = request({
url: "sampleurl",
content: { f: "pjson" },
form: dojo.byId("uploadForm"),
handleAs: "json"
});
Receive a successful response:
Upload Success:
{success: true, item: {…}, _ssl: undefined}
item:
committed: true
date: 1553539769324
description: null
itemID: "i697e97a0-7caa-4bac-9a5f-6e3da8ae8249"
itemName: "P_20190312_104511_gps_lig.jpg"
serviceName: "DEMO/UploadPhotoGeo.GPServer"
__proto__: Object
success: true
_ssl: undefined
__proto__: Object
Then I get the itemID and set the parameters and submit job:
requestID.then(
function (response) {
console.log("Upload Success: ", response);
itemID = response.item.itemID;
nomeItem = response.item.itemName;
params = {
"in_x": String(x_decimal),
"in_y": String(y_decimal),
"in_z": String(z.valueOf()),
"in_NIS": null,
"in_idProcDet": null,
"in_obs": null,
"in_upDate": null,
"in_photoDate": fulldate,
"in_or": null,
"in_owner": null,
"in_att": itemID,
"in_fn": nomeItem
};
var gpJob = gpTask.submitJob(params, completeCallback, statusCallback);
gpJob.then(
function (response) {
console.log("GP Success: ", response);
}, function (error) {
console.log("GP Error: ", error.message);
});
In my Python toolbox, this specific parameter is defined as:
# Eleventh parameter - Attachment
param10 = arcpy.Parameter(
displayName="Input Attachment",
name="in_att",
datatype="GPDataFile",
parameterType="Optional",
direction="Input")
And retrieved here:
foto = parameters[10].valueAsText
fotoNome = parameters[11].valueAsText
arcpy.AddMessage(str(foto))
if (foto <> None):
arcpy.AddMessage('Foto: ' + str(foto))
But I am receiving a message of a null parameter:
8:
description: "Foto: None"
type: "esriJobMessageTypeInformative"
__proto__: Object
And the script does not create the point or save the photo:
14:
description: "Gravando foto no drive f: must be string or buffer, not None"
type: "esriJobMessageTypeInformative"
Am I missing something?