Suite

Arcpy CalculateField ne fonctionne pas sur ArcGIS Server 10.0


Je travaille sur ArcGIS 10.0 sp5. J'ai un comportement très étrange. Dans un script arcpy j'ai ces deux commandes très simples, pour ajouter un champ "ID_UDF" à une table puis le remplir avec une valeur :

arcpy.AddField_management(table, "ID_UDF", "LONG", "", "", "", "", "NULLABLE", "NON_REQUIRED", "") arcpy.CalculateField_management(table, "ID_UDF", '{0 }'.format(ID_UDF), "VB", "")

Le script est contenu dans une boîte à outils. Si j'exécute le script avec ArcGIS Desktop, cela fonctionne bien et le champ ID_UDF est correctement ajouté et rempli avec la valeur. Si je publie la boîte à outils avec ArcGIS Server et que je l'exécute à partir de là, le champ est ajouté mais pas rempli, il reste avec une valeur NULL.

Dans les deux cas, dans le journal de géotraitement, je n'ai aucune erreur et les deux commandes (AddField et CalculateField) sont exécutées avec succès.

Même si je supprime la commande AddField (en supposant que le champ soit déjà créé), CalculateField seul fonctionne correctement avec ArcGIS Desktop mais pas avec ArcGIS Server. Dans le script, il existe de nombreuses autres commandes qui fonctionnent correctement sur les deux environnements.

Des idées?


  1. Vous avez créé un champ au format long. vous devez ajouter des données dans ce format. Mais votre fonction renvoie la valeur de chaîne "{}".format(x) si ID_UDF est stocké dans du texte, vous pouvez le convertir avec long(float(id_udf))
  2. Si vous voulez calculer le champ en python remplacez "VB" par "PYTHON" ou "PYTHON_9.3

    arcpy.CalculateField_management(table, "ID_UDF", long('!FIELDNAME!'), "PYTHON_9.3")

remarque : il n'est pas nécessaire d'ajouter une valeur vide au paramètre facultatif. Vous pouvez l'ignorer


Voir la vidéo: ArcGIS Pro: Field Calculators Code Block and Sorting Data with Python (Octobre 2021).