4

I am using ArcGIS and arcpy to process some shapefiles. When I try to use the function

arcpy.JoinField_management()

the program stops and Python says that the tool is not licensed. This confuses me because the documentation for the tool does not ask for any special licenses.

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001700000065000000

An extract of my code and the error follow (the code is quite long but I run it ineractively to check it as I go).

import arcpy
arcpy.env.workspace = 'C:/Data/'
arcpy.CheckOutExtension('Spatial')
outZSaT = arcpy.sa.ZonalStatisticsAsTable('mb06.shp', 'MB_NUM', 'slope', 'sum_slope.dbf', 'DATA', 'SUM')
arcpy.JoinField_management('mb06.dbf', 'MB_NUM', 'sum_slope.dbf', 'MB_NUM')

Traceback (most recent call last):
  File "<pyshell#2>", line 2, in <module>
    workspace + '/sum_slope7.dbf', 'MB_NUM')
  File "c:\Program Files (x86)\ArcGIS\Desktop10.0\arcpy\arcpy\management.py", line 3667, in JoinField
    raise e
ExecuteError: Failed to execute. Parameters are not valid.
ERROR 000824: The tool is not licensed.
Failed to execute (JoinField).
2
  • If you provide your code, it will be easier to find the problem. One thought, based on a recent similar error, though basic, is did you include "import arcpy" as the first line in the code window? May 8, 2012 at 4:18
  • Why don't you edit your question and paste your code into it. May 8, 2012 at 4:45

3 Answers 3

4

This issue can be resolved by installing ArcGIS for Desktop SP3 (or the current SP4) http://files.eaglegis.co.nz/ArcGIS%2010/ArcGIS%2010%20Service%20Pack%204/ArcGIS%20For%20Desktop%20(Basic,%20Standard,%20Advanced)/

2
  • 2
    Yes, I just got an email from ESRI support confirming that there is a bug and the licensing issue should be resolved in SP4. Alternatively, I have written a python function that uses arcpy.AddField_management() and arcpy.UpdateCursor() to emulate JoinField_management() without updating.
    – Alex
    May 14, 2012 at 1:26
  • @AlexOlssen, wow, talk about forgetting a basic question. Asking about the ArcGIS version is great, but the service pack is also critical! Glad you found a solution! May 29, 2012 at 0:29
2

Alex, I edited my answer to remove the prior information, which was incorrect based on your input


I looked at the help file that you included in your question. It is for: Join Field (Data Management). The implementation code for that looks like the following:

import arcpy
from arcpy import env
env.workspace = "C:/data/data.gdb"
arcpy.JoinField_management("zion_park", "zonecode", "zion_zoning", "zonecode", ["land_use","land_cover"])

This permanently joins fields from the "Join Table", to the "Input Table".

Here is the code that you entered in your script: Add Join (Data Management)

arcpy.AddJoin_management('mb06.dbf', 'MB_NUM', 'sum_slope.dbf', 'MB_NUM')

This function works with an "Input Table" that is a feature layer or a table view. In other words, it only works on featureclasses or tables that are loaded into ArcMap already.

What I would try is to modify your code as follows:

import arcpy
arcpy.env.workspace = 'C:/Data/'
arcpy.CheckOutExtension('Spatial')
outZSaT = arcpy.sa.ZonalStatisticsAsTable('mb06.shp', 'MB_NUM', 'slope', 'sum_slope.dbf', 'DATA', 'SUM')
arcpy.JoinField_management('mb06.dbf', 'MB_NUM', 'sum_slope.dbf', 'MB_NUM')

Give that a try when you get back in to work. Hopefully it will help. Sorry about the confusion earlier.

7
  • Hi, I am not at work and don't have access to ArcGIS right now. However, I have the spatial analyst license, and the code works perfectly without the last line. The file sum_slope.dbf is correctly created and can be loaded into ArcMap. Thus I don't know which parameter would not be valid. I will check the link you supplied first thing tomorrow. Thank you.
    – Alex
    May 8, 2012 at 6:38
  • @AlexOlssen, I modified my answer. It looks like you were referencing a different function in your script than the help file that you linked to. Hopefully this will work when you get back to the office. May 8, 2012 at 7:17
  • Hi, now it is my turn to apologize! I have tried JoinField_management() and AddJoin_management() because the former wouldn't work. In an earlier version I used the exact code you suggested; I have just rechecked it and I get the same error. Moreover, in ArcMap, if I go to the "geoprocessing" drop down menu, select "search for tools", type "join field (data management)" and click the "toolboxes\system toolboxes\..." link, then the tool appears with a lock next to it. :(
    – Alex
    May 9, 2012 at 3:32
  • This is getting stranger, so let's back up a bit. First, I assume you are using ArcGIS 10. Are you using an evaluation copy, or something with a trial license of 60 days? There is another link on GISse that is also about this tool, from a couple months ago: python script has execution error first time through on a joinfield but not the second time. I'm running out of ideas here, but would suggest opening a support incident with ESRI!! May 9, 2012 at 5:57
  • I think I will contact ESRI. I also found another person with the same problem forums.arcgis.com/threads/51041-Join-Field-Licensing-Issue. I am running a full version of ArcGIS 10 with the SA extension. Thanks for your help.
    – Alex
    May 9, 2012 at 20:54
-1

look this page

http://resources.esri.com/help/9.3/arcgisdesktop/com/gp_toolref/geoprocessing_tool_reference/licensing_for_geoprocessing_tools.htm

if you use arcview or arceditor the join field tool is not supported.

you can try add field tool and normal join tool and then use calculate field and finaly use remove join, you can do that using model builder and export to pyton script.

another thing that you must do is check your licence, you can have installed arcinfo but in the desktop administration already use arcview or arceditor.

1
  • That page is for ArcGIS 9.3. @Djmapper gave the correct answer; I got the same thing from ESRI. JoinField_management should be in all licenses of ArcGIS 10, however in SP1 and SP2 there is a bug with the licensing. If you upgrade to SP3 or SP4 then everything works fine.
    – Alex
    May 25, 2012 at 23:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.