Select to view content in your preferred language

GetParameterAsText(5) and above fails

882
3
10-26-2011 06:33 AM
kyleturner
Deactivated User
Hi all,

I have a simple script that adds some fields, prompts the user for the info to fill those fields, and populates them via fieldcalculator. However, if I try to use any user input (i.e. getParameterAsText) at or above the 6th parameter (i.e. getParameterAsText(5)) it fails. I get the following error: (see attached screenshot).

Here is the script:

# Import system modules
import arcpy, sys
from arcpy import env
 
# Set local variables
inFeatures = arcpy.GetParameterAsText(0)
 
name = arcpy.GetParameterAsText(1)
fieldName = name + 'IDPK'
fieldAlias = fieldName
arcpy.AddField_management(inFeatures, fieldName, "TEXT", "", "", 20, fieldAlias)
expression = "autoIncrement(arcpy.GetParameterAsText(2), arcpy.GetParameterAsText(3), !INSTLN_ID!)"
codeblock = """rec = 0
def autoIncrement(siteID, instalID, instlnID):
    global rec
    length = len(instlnID)
    if (length == 4):
        pStart = 1 
        pInterval = 1 
        if (rec == 0):
            rec = pStart
        else:
            rec = rec + pInterval 
 
        zeros = 15 - len(instalID) - len(siteID)
        return siteID + '_' + instalID + '0001' + str(rec).zfill(zeros)"""
 
# Execute CalculateField 
arcpy.CalculateField_management(inFeatures, fieldName, expression, "PYTHON", codeblock)
 
realPropertySiteUniqueID = arcpy.GetParameterAsText(4)
arcpy.AddField_management(inFeatures, "realPropertySiteUniqueID", "LONG")
arcpy.CalculateField_management(inFeatures, "realPropertySiteUniqueID", realPropertySiteUniqueID)
 
realPropertyUniqueID = arcpy.GetParameterAsText(5)
arcpy.AddField_management(inFeatures, "realPropertyUniqueID", "TEXT", "", "", 3, "realPropertyUniqueID")
arcpy.CalculateField_management(inFeatures, "realPropertyUniqueID", realPropertyUniqueID)
 
wacInnrCode = arcpy.GetParameterAsText(6)
arcpy.AddField_management(inFeatures, "wacInnrCode", "TEXT", "", "", 10, "wacInnrCode")
arcpy.CalculateField_management(inFeatures, "wacInnrCode", wacInnrCode)
 
owner = arcpy.GetParameterAsText(7)
arcpy.AddField_management(inFeatures, "owner", "TEXT", "", "", 4, "owner")
arcpy.CalculateField_management(inFeatures, "owner", owner)



Thank you for your time.
 
Arc 10 SP3
Windows 7
Tags (2)
0 Kudos
3 Replies
DarrenWiens2
MVP Honored Contributor
I'm actually surprised it gets past GetParameterAsText(4) (a string) which gets directly calculated into a Long field.
0 Kudos
kyleturner
Deactivated User
I'm actually surprised it gets past GetParameterAsText(4) (a string) which gets directly calculated into a Long field.


Darren,

Thanks for that suggestion.
Initially I thought that was the problem too, but it doesn't seem to matter if I use, GetParameterAsText or GetParameter, or if when I define the parameters in ArcCatalog I set it as Long or String.

Thanks again,
Kyle
0 Kudos
kyleturner
Deactivated User
Fixed!

Apparently the string that I thought was being evaluated as a string was not.
So, instead of passing in a variable to calcfild_manage...(features,attribute, variable, ...

I did:
arcpy.CalculateField_management(inFeatures, "x", "arcpy.GetParameterAsText(5)", "PYTHON")

Cheers.
0 Kudos