5

Allow the importer to disambiguate a 'Link' field value?

I'm trying to do a Bulk Time Log Import, using this data:

Person    Date    Duration    Link
Joseph Frayne    3/3/09    5    1st Pass Animation
Joseph Frayne    4/15/09    3    1st Pass Animation

 

The problem is that the two Links (Tasks), both called "1st Pass Animation", belong to two different Shots. When the Importer gets to step 4, I can see that Shotgun resolves the Link value to the first Task entity instance it comes across that matches the Task 'Task' field value.

Instead, it should recognize that the value is ambiguous, and mark it as a cell error. Instead, it marks it as an error when I attempt to disambiguate it ahead of time, by changing the Link value to "1st Pass Animation (Shot1)" or to the Task ID value, "719".

I also thought that maybe I could import another field called "Task -> Link" (which is what I did in the Time Logs list, to visually disambiguate them there), but that's not an option.

Anything I'm missing, or will this have to be a feature request?

Thanks!

Joe

2 comments

  • 0
    Avatar
    Nephi Sanchez

    Hi Joe,


    I'm afraid you have exposed a good use-case where the importer needs to be smarter!  I've logged a feature ticket in our internal system.

     

    Nice work.

  • 0
    Avatar
    KP

    (moved to feature requests)

    We're trying to work out the best way to define the context for an ambiguous value. With your example, the problem is the Task.entity field can link to any number of entity types. So allowing something like "1st Pass Animation (Shot1)" doesn't let Shotgun know what "Shot1" is to know where to look for that entity either. 

    Some options suggested by other studios include:

    To link a Note to a non-unique Task named "animation" on Shot 100_010, in the note_links field:

    Task:animation {Task.entity.Shot.code=100_010}

     

    or for a Modeling Task on an Asset:

    Task:Modeling {Task.entity.Asset.code=MLOSUIT}

     

    Other ideas:

    {Task.id=123456}

    {Task.entity.Shot.code=100_010:animation}

    animation {Task.entity.Shot.code=100_010}

    – the {} defines a contextual lookup

    – The first token separated by a . defines the type of entity we are linking

    – The entire dotted string defines the path of the contextual lookup

    – the = then defines the condition to match

     

    We'd love to hear your ideas here. Keep in mind that for the contextual entity, we would need to know the entity type and name or id since these field can often accept a number of different entity types.

Please sign in to leave a comment.