A maior parte do conteúdo (serviços de feição, mapas) pode ser copiada usando o ArcGIS Online Assistant<\/A>. O método Python descrito abaixo é necessário para conteúdos mais complexos. Você pode usá-lo para dashboards, web apps, surveys e aplicativos configuráveis. Ele não funcionará para ArcGIS StoryMaps ou ArcGIS Experience Builder.<\/P><\/P>
<\/P>
username <SPAN class="operator token">=<\/SPAN> input<SPAN class="punctuation token">(<\/SPAN><SPAN class="string token">"Enter username of origin organization: "<\/SPAN><SPAN class="punctuation token">)<\/SPAN> <SPAN class="keyword token">from<\/SPAN> arcgis<SPAN class="punctuation token">.<\/SPAN>gis <SPAN class="keyword token">import<\/SPAN> GIS gis1 <SPAN class="operator token">=<\/SPAN> GIS<SPAN class="punctuation token">(<\/SPAN><SPAN class="string token">"https:\/\/arcgis.com"<\/SPAN><SPAN class="punctuation token">,<\/SPAN> username<SPAN class="punctuation token">)<\/SPAN><SPAN class="line-numbers-rows"><SPAN><\/SPAN><SPAN><\/SPAN><SPAN><\/SPAN><\/SPAN><\/CODE><\/PRE><P>10. Clique em <STRONG>Run<\/STRONG>.<\/P><P style="padding-left: 30px;"><IMG __jive_id="504108" alt="" class="jive-emoji jive-image image-2 j-img-original" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/504108_two.png" \/><\/P><P>11. Na caixa de texto que aparecer, digite seu nome de usuário e pressione <STRONG><EM>Enter<\/EM><\/STRONG>.<\/P><P>12. Na caixa de texto <STRONG>Enter password<\/STRONG>, digite sua senha e pressione <STRONG><EM>Enter<\/EM><\/STRONG>.<\/P><P style="padding-left: 30px;">Em seguida, você se conectará à sua conta ArcGIS <EM>target<\/EM>, aquela para a qual deseja mover seu conteúdo.<\/P><P>13. Na próxima célula, cole o seguinte texto:<\/P><PRE class="lia-code-sample line-numbers language-none"><CODE>username_2 <SPAN class="operator token">=<\/SPAN> input<SPAN class="punctuation token">(<\/SPAN><SPAN class="string token">"Enter username of target organization: "<\/SPAN><SPAN class="punctuation token">)<\/SPAN> gis2 <SPAN class="operator token">=<\/SPAN> GIS<SPAN class="punctuation token">(<\/SPAN><SPAN class="string token">"https:\/\/arcgis.com"<\/SPAN><SPAN class="punctuation token">,<\/SPAN> username_2<SPAN class="punctuation token">)<\/SPAN><SPAN class="line-numbers-rows"><SPAN><\/SPAN><SPAN><\/SPAN><\/SPAN><\/CODE><\/PRE><P>14. Clique em <STRONG>Run<\/STRONG>.<\/P><P>15. Insira o nome de usuário e a senha da sua conta target.<\/P><P> <\/P><H6 id="toc-hId-250602362" id="toc-hId-250602362">Finalmente, você identificará os itens que deseja transferir e os copiará para sua conta target.<\/H6><P>16. Na próxima célula, digite o seguinte texto, mas ainda não execute o código.<\/P><PRE class="lia-code-sample line-numbers language-none"><CODE>items <SPAN class="operator token">=<\/SPAN> gis1<SPAN class="punctuation token">.<\/SPAN>content<SPAN class="punctuation token">.<\/SPAN>search<SPAN class="punctuation token">(<DSPAN class=\"operator token\">=</DSPAN>"id:"<DSPAN>)
items =<\/SPAN> gis1.<\/SPAN>content.<\/SPAN>search(<\/SPAN>query=<\/SPAN>"owner: {}"<\/SPAN>.<\/SPAN>format(<\/SPAN>username)<\/SPAN>, <\/SPAN>max_items=<\/SPAN>num_items, <\/SPAN>sort_field=<\/SPAN>'id'<\/SPAN>, <\/SPAN>sort_order=<\/SPAN>'desc'<\/SPAN>)<\/SPAN>items<\/SPAN><\/SPAN><\/SPAN><\/CODE><\/PRE>2. Execute novamente a célula. Ela perguntará quantos itens você deseja copiar.<\/P>3. Execute novamente a última célula para copiar o conteúdo.<\/P><\/P>Você pode encontrar mais formas de buscar itens no documento de Referência de Pesquisa<\/A>.<\/P> <\/P>
Thanks for this @HeatherSmith
I successfully cloned a couple of feature layers across from AGOL to our Enterprise system which definitely is a win for us. However, when I try to copy a complete Survey it gives me the following error:
Failed to update Form Death Animal Survey - Jordi: 'NoneType' object is not iterable"
It seems to be pointing at the form but I am not sure how to fix this? I have also tried to only clone the form part of the survey to see if that would work but unfortunately not. Thank you very much!
Hi - I used the code exactly as above to copy a dashboard from one AGOL to another, but it only copied the dashboard and not the associated web map and feature layers. The username owns all the items, any thoughts on way it only copied the dashboard?
def deep_copy_content(input_list):for item in input_list:try:print("Cloning " + item.title)copy_list = []copy_list.append(item)gis2.content.clone_items(copy_list, copy_data=True, search_existing_items=True)print("Successfully cloned " + item.title)except Exception as e:print(e)print("The function has completed")deep_copy_content(items)
Cheers
Chris
P.S if I just copy the web map then the associated data does get copied. But when using the dashboard ID just the dashboard copies over.
@HeatherSmith Thank you!
@Juan_Toro-Killion I am told that yes, you can use clone_items() to move content between any two organizational deployments.
Is it possible to use this workflow to copy from ArcGIS Online to Enterprise (Portal)? @HeatherSmith
Thanks,
@HeatherSmith and @cmlosaria_gis
To those of you who were getting the "list out of range" error, how did you resolve it? I have no issues cloning service definitions, file geodatabases and hosted feature layers with only one layer. I get the error anytime I try to clone a hosted feature layer that contains multiple layers and/or tables. These layers and tables are related to one another, if that makes a difference.
Teri
Cloning Plan Compare (latest) ('Failed to create Feature Service Thu Duc City Proposed Land Use Plan: list index out of range', <Item title:"Thu Duc City Proposed Land Use Plan" type:Feature Layer Collection owner:gisencityadmin>) The function has completed
Hi, I am also facing the same problem. I don't use any HTML tags on this application, What could be the problem?
HI guys,
im runnig the script in jupyter and im getting this error in several items, any idea??
('Failed to create Feature Service Departamentos: Your request has timed out.\n(Error Code: 504)', <Item title:"Departamentos" type:Feature Layer Collection owner:NicolasM>)
thanks!!!
Has anyone had the issue "failed to create feature service name of item : 'available', None
I am trying to transfer a web map
Update: I realized the issue was because I was trying to transfer a web map with a feature layer that was hosted on my original account. The account I was trying to transfer to is a public account and they can't host feature layers.
@NikolasHawley that issue is normally related to data not being able to be copied to/from a destination. If you have a `field` with HTML in it or generic text, make sure it's sanitized before the clone operation.
Here is a list of supported HTML tags:
https://doc.arcgis.com/en/arcgis-online/reference/supported-html.htm
Has someone made this into a notebook that can just be shared directly already as opposed to copying from here?
Also, I got this error trying to clone a hosted feature service with related tables... any insight?
Cloning xyz ('Failed to create Feature Service xyz: list index out of range', <Item title:"xyz" type:Feature Layer Collection owner:xyz>) The function has completed
Thank you @BernardRIXEN
The documentation for cloning content is here: https://developers.arcgis.com/python/guide/cloning-content/ which lists the items that are possible to clone. Future changes should be reflected there.There is also now an article which presents a workaround method for copying new StoryMap stories: https://developers.arcgis.com/python/sample-notebooks/clone-storymap-version2/
Hello @HeatherSmith,
great and well explained article. You mentioned "It will not work for ArcGIS StoryMaps or ArcGIS Experience Builder". Where in the Python API or REST API documentation are these limitations listed and updated ?
Regards, Bernard
Membros conectados podem postar, seguir atualizações e mais. Novo aqui? Registre uma conta gratuita.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.