API create object from template
-
Hey @kleinrotti
again - sadly no updates regarding this topic
-
It's quite a while now but are there new information to this topic?
Unfortunately our workflow is not that good due to this bug. Every time we want to mass import ordered products from delivery notes with a tool, we have to disable the validation with a user which has the appropriate rights in i-doit. Afterwards we have to enable it again. This causes loss in time or if someone forgets to disable the validation, the products are not imported correctly and it has to be repeated.
Or is there a possibility to provide a pull request for the official API-Addon to provide a bug fix myself? -
Hi
Did you check
system settings > Tenantsettings > Unique checks > object title
But I don't know if this is only valid for the Extras > import mechanism or for API as well.Du you really need global unique titles in your daily processes? Maybe "Unique (per Object type)" is sufficient (but not sure if this triggers the bug or not)
Regards
Leo -
@leobaer Sorry for my late reply. Your idea to change the global unique setting to "Unique per Object type" worked. Using this setting works without the error. Thanks for that
I was also able to implement the feature to use templates in the API Addon by my self. Happily this was just a few lines of code.
-
@Kleinrotti
Hi Kleinrotti,We are also looking for a solution to create a new object from a template using the API. Could you explain what exactly you implemented in the API addon to make it work?
GrΓΌΓe!
Erik
-
@FlatErik I added these lines of code to the file isys_api_model_cmdb_object.class.php at line 262 of the API Addon (Version 1.12.3).
if (isset($p_params['useTemplate']) && $p_params['useTemplate']) { // Get template module. $l_template_module = new isys_module_templates(); $l_template_module->create_from_template( [$p_params['useTemplate']], $p_params['type'], $p_params['title'], $l_return['id'], false, 1, '', $p_params['category'], $p_params['purpose'] ); }
Sample API Request:
{ "version": "2.0", "id": "1", "method": "cmdb.object.create", "params": { "apikey": "xyz", "language": "de", "type": "C__OBJTYPE__CLIENT", "title": "CLIENT-TEMP-638001685961295254", "purpose": null, "cmdb_status": 0, "description": null, "category": null, "useTemplate": 583 }
useTemplate provides the Id of the template.
-
@Kleinrotti I can confirm that this works with API version 1.13 too.
Thanks a lot, this saves some API calls when importing a few hundred switches and makes the scripts easier to write.
Kind regards,
Mathias -
Hey @Kleinrotti, Hey @mamawe !
could someone please tell us, where do we find the template id?
We tried the whole thing with the object id of the template.. but i didnt work.Regrads
Erik -
-
Hey @Kleinrotti
it worked out. Thank you!
We still have the problem, that we want to create the new object without using all globel categories..
Do you know if it's possible to create the new object from a template without using the Relationship Category?
The Duplicat-Function allows you to unselect the unwanted categories.. -
@FlatErik @LFischer @Kleinrotti
I can't find any indication in the documentation that the duplicate-function can be used via the API. Is that right?
-
@LFischer @Kleinrotti Has anyone please an answer?
-
Hello @FlatErik
I'm afraid you can not "unselect" the relationship category inside the templates, since they will always take the complete object "as-is" and replicate it or use it as mass-change basis.
Usually (with any other category) I would say you can simply "clear" all entries from the category you don't want, but that won't work for the relationship category unless you remove all entries that created any implicit relations
I have not red every post here - could you sum up what's the problem?
Best regards
Leo -
@mamawe said in API create object from template:
@Kleinrotti I can confirm that this works with API version 1.13 too.
Just tested with API version 1.13.1: it works there too, but has to be inserted at line 292.
Kind regards,
Mathias