DynamicFields in different Customer groups

English! place to talk about OTRS development, programming and coding

Moderator: tto

Post Reply
labasus
OTRS newbie
Posts: 17
Joined: 26 Oct 2011, 23:58
OTRS Version?: 5.0.11

DynamicFields in different Customer groups

Post by labasus » 26 Sep 2016, 19:53

Hello friends,

I'm broke my head, how is it possible with different groups of clients to show different sets of DynamicFields.

ACL doesn't help in this situation, because it could only change the values of DynamicField, but does not allow to show or to hide it, depending on Customer group.

wurzel
OTRS guru
Posts: 2712
Joined: 08 Jul 2010, 22:25
OTRS Version?: 6.0.x

Re: DynamicFields in different Customer groups

Post by wurzel » 26 Sep 2016, 20:00

Hi,

Producer provides an Add On
https://www.otrs.com/otrs-business-solu ... ic-fields/

Flo
    ((OTRS)) Community Edition 6.0.x, LAMP LIVE auf Debian 9
    OTRS 7 SILVER

    -- Ich beantworte keine Forums-Fragen PN - No PN please

    I won't answer to unfriendly users any more. A greeting and regards are just polite.

    labasus
    OTRS newbie
    Posts: 17
    Joined: 26 Oct 2011, 23:58
    OTRS Version?: 5.0.11

    Re: DynamicFields in different Customer groups

    Post by labasus » 27 Sep 2016, 07:20

    Looks like solution, but ...
    1) Too many incompatibility with other modules
    2) Not documented right now... I don't really know does it have needed functionality
    3) It seems to me official Hide/Show Dynamic Fields module has custom JS which controls CSS to hide/show DF.

    Anybody else, all mind are welcome...

    User avatar
    tto
    Moderator
    Posts: 315
    Joined: 09 Jan 2007, 15:24
    OTRS Version?: OTRS 5.0.x
    Real Name: Torsten
    Company: c.a.p.e. IT GmbH
    Location: Chemnitz
    Contact:

    Re: DynamicFields in different Customer groups

    Post by tto » 27 Sep 2016, 08:19

    labasus wrote:[..]
    I'm broke my head, how is it possible with different groups of clients to show different sets of DynamicFields.

    ACL doesn't help in this situation, because it could only change the values of DynamicField, but does not allow to show or to hide it, depending on Customer group.
    In KIX(4OTRS) it is possible to hide/show dynamic fields via ACL-rules. This even works in AgentTicketProcess and it is compatible with the rest of capeITs add on packages.

    An ACL would look as followed, whereas "RequiredEquipment" is a dynamic field which should not be shown if value "Medical Device" is selected in dynamic field "OrderType".

    Code: Select all

    - ChangeBy: capeIT
      ChangeTime: 2016-08-31 10:11:43
      Comment: Only show dynamic fields relevant for medical device related requests.
      ConfigChange:
        Possible:
          Form:
            RequiredEquipment:
            - '0'
      ConfigMatch:
        Properties:
          Ticket:
            DynamicField_OrderType:
            - Medical Device
      CreateBy: capeIT
      CreateTime: 2016-08-31 10:11:43
      Description: ''
      ID: '12'
      Name: 205_RfC_MedicalDevice
      StopAfterMatch: 0
      ValidID: '1'
    
    regards, T.
    --
    KIX 17.x (fork of OTRS)
    Professional KIX-, or OTRS-integration, development and consulting by c.a.p.e. IT - http://www.cape-it.de
    For questions and hints regarding KIX(4OTRS) please go to https://forum.kixdesk.com/
    Bei Fragen und Hinweisen zu KIX(4OTRS) bitte an https://forum.kixdesk.com/ wenden.

    wurzel
    OTRS guru
    Posts: 2712
    Joined: 08 Jul 2010, 22:25
    OTRS Version?: 6.0.x

    Re: DynamicFields in different Customer groups

    Post by wurzel » 27 Sep 2016, 08:35

    Hi,

    the syntax of the ACL is the same as in the other module :)

    Flo
      ((OTRS)) Community Edition 6.0.x, LAMP LIVE auf Debian 9
      OTRS 7 SILVER

      -- Ich beantworte keine Forums-Fragen PN - No PN please

      I won't answer to unfriendly users any more. A greeting and regards are just polite.

      wurzel
      OTRS guru
      Posts: 2712
      Joined: 08 Jul 2010, 22:25
      OTRS Version?: 6.0.x

      Re: DynamicFields in different Customer groups

      Post by wurzel » 27 Sep 2016, 08:38

      Hi,
      labasus wrote:Looks like solution, but ...
      acutally it IS your solution

      1) Too many incompatibility with other modules
      i doubt you need them all
      2) Not documented right now... I don't really know does it have needed functionality
      it hides/shows dynamic fields based on ACL. The same as Kix Add On does.


      regards
      Florian
        ((OTRS)) Community Edition 6.0.x, LAMP LIVE auf Debian 9
        OTRS 7 SILVER

        -- Ich beantworte keine Forums-Fragen PN - No PN please

        I won't answer to unfriendly users any more. A greeting and regards are just polite.

        labasus
        OTRS newbie
        Posts: 17
        Joined: 26 Oct 2011, 23:58
        OTRS Version?: 5.0.11

        Re: DynamicFields in different Customer groups

        Post by labasus » 27 Sep 2016, 12:29

        I have use KIX4OTRS already, but it can handle only with Depending and dropdown DF type
        I haven't depending dropdown DF.

        In my scenario must be:
        1) Customer groups: group_A, customer group_B
        2) Different queue from different customer groups
        3) Dynamic fields - Custom_DF1 (text) - mandatory, custom_DF2(text), custom_DF3(date) - mandatory, custom_DF4 (text), Custom_DF5 (text) - for agent only, Custom_DF6 (text) - mandatory for agent only
        4) Customer forms are different for customer groups (this is done with customer groups)
        5) Customer group_a must have DF: Custom_DF1, custom_DF2, custom_DF3
        6) Customer group_b must have DF: custom_DF3, custom_DF4
        7) Agent must use DF: Custom_DF1, custom_DF2, custom_DF3, custom_DF4, Custom_DF5, Custom_DF6.
        Note to p.7: As I see agents depending on Queue must have only DynamicFields which belongs to Customer Groups to avoid DF mandatory errors and logic.


        tto wrote:
        labasus wrote:[..]
        I'm broke my head, how is it possible with different groups of clients to show different sets of DynamicFields.

        ACL doesn't help in this situation, because it could only change the values of DynamicField, but does not allow to show or to hide it, depending on Customer group.
        In KIX(4OTRS) it is possible to hide/show dynamic fields via ACL-rules. This even works in AgentTicketProcess and it is compatible with the rest of capeITs add on packages.

        An ACL would look as followed, whereas "RequiredEquipment" is a dynamic field which should not be shown if value "Medical Device" is selected in dynamic field "OrderType".

        Code: Select all

        - ChangeBy: capeIT
          ChangeTime: 2016-08-31 10:11:43
          Comment: Only show dynamic fields relevant for medical device related requests.
          ConfigChange:
            Possible:
              Form:
                RequiredEquipment:
                - '0'
          ConfigMatch:
            Properties:
              Ticket:
                DynamicField_OrderType:
                - Medical Device
          CreateBy: capeIT
          CreateTime: 2016-08-31 10:11:43
          Description: ''
          ID: '12'
          Name: 205_RfC_MedicalDevice
          StopAfterMatch: 0
          ValidID: '1'
        
        regards, T.

        User avatar
        tto
        Moderator
        Posts: 315
        Joined: 09 Jan 2007, 15:24
        OTRS Version?: OTRS 5.0.x
        Real Name: Torsten
        Company: c.a.p.e. IT GmbH
        Location: Chemnitz
        Contact:

        Re: DynamicFields in different Customer groups

        Post by tto » 27 Sep 2016, 12:41

        Hi,
        labasus wrote:I have use KIX4OTRS already, but it can handle only with Depending and dropdown DF type
        I haven't depending dropdown DF.
        ...yes. This feature is available as well, but neither the one you require for the mentioned use case nor the one I referred to.
        labasus wrote: In my scenario must be:
        1) Customer groups: group_A, customer group_B
        2) Different queue from different customer groups
        This is a point to build on. Try to modify the ACL provided above to disable DF when the "wrong" queue is selected.
        labasus wrote: 3) Dynamic fields - Custom_DF1 (text) - mandatory, custom_DF2(text), custom_DF3(date) - mandatory, custom_DF4 (text), Custom_DF5 (text) - for agent only, Custom_DF6 (text) - mandatory for agent only
        4) Customer forms are different for customer groups (this is done with customer groups)
        5) Customer group_a must have DF: Custom_DF1, custom_DF2, custom_DF3
        6) Customer group_b must have DF: custom_DF3, custom_DF4
        7) Agent must use DF: Custom_DF1, custom_DF2, custom_DF3, custom_DF4, Custom_DF5, Custom_DF6.
        I guess you are a bit imprecise here - agents must be able to se entered values, mustn't they? There is no ACL or similar on displaying DF in AgentTicketZoom. This is controlled by SysConfig.
        labasus wrote: Note to p.7: As I see agents depending on Queue must have only DynamicFields which belongs to Customer Groups to avoid DF mandatory errors and logic.
        OK - so the ACLs rules should apply to any ticket creation / process masks. Then just leave out any ACL-properties limiting this.

        regards, T.
        --
        KIX 17.x (fork of OTRS)
        Professional KIX-, or OTRS-integration, development and consulting by c.a.p.e. IT - http://www.cape-it.de
        For questions and hints regarding KIX(4OTRS) please go to https://forum.kixdesk.com/
        Bei Fragen und Hinweisen zu KIX(4OTRS) bitte an https://forum.kixdesk.com/ wenden.

        labasus
        OTRS newbie
        Posts: 17
        Joined: 26 Oct 2011, 23:58
        OTRS Version?: 5.0.11

        Re: DynamicFields in different Customer groups

        Post by labasus » 27 Sep 2016, 16:30

        Looks very promise, but still can't move forward (because of ACL is not documented well for these unstandart case):
        1) For different customer group used "Ticket Template Configurator" with predefined Queue A or B (depending on customer group)
        2) DF with name "place" must be hidding for customer group_A, which use Queue name "group_A" (queue id=2)

        ConfigChange:
        Possible:
        Form:
        DynamicField_place:
        - '0'
        ConfigMatch:
        Properties:
        Queue:
        QueueID:
        - '2'
        Description: ''
        ID: '3'
        Name: LastKnowPlace
        StopAfterMatch: '1'
        ValidID: '1'

        Doesn't work... :(
        tto wrote:Hi,
        labasus wrote:I have use KIX4OTRS already, but it can handle only with Depending and dropdown DF type
        I haven't depending dropdown DF.
        ...yes. This feature is available as well, but neither the one you require for the mentioned use case nor the one I referred to.
        labasus wrote: In my scenario must be:
        1) Customer groups: group_A, customer group_B
        2) Different queue from different customer groups
        This is a point to build on. Try to modify the ACL provided above to disable DF when the "wrong" queue is selected.
        labasus wrote: 3) Dynamic fields - Custom_DF1 (text) - mandatory, custom_DF2(text), custom_DF3(date) - mandatory, custom_DF4 (text), Custom_DF5 (text) - for agent only, Custom_DF6 (text) - mandatory for agent only
        4) Customer forms are different for customer groups (this is done with customer groups)
        5) Customer group_a must have DF: Custom_DF1, custom_DF2, custom_DF3
        6) Customer group_b must have DF: custom_DF3, custom_DF4
        7) Agent must use DF: Custom_DF1, custom_DF2, custom_DF3, custom_DF4, Custom_DF5, Custom_DF6.
        I guess you are a bit imprecise here - agents must be able to se entered values, mustn't they? There is no ACL or similar on displaying DF in AgentTicketZoom. This is controlled by SysConfig.
        labasus wrote: Note to p.7: As I see agents depending on Queue must have only DynamicFields which belongs to Customer Groups to avoid DF mandatory errors and logic.
        OK - so the ACLs rules should apply to any ticket creation / process masks. Then just leave out any ACL-properties limiting this.

        regards, T.

        User avatar
        tto
        Moderator
        Posts: 315
        Joined: 09 Jan 2007, 15:24
        OTRS Version?: OTRS 5.0.x
        Real Name: Torsten
        Company: c.a.p.e. IT GmbH
        Location: Chemnitz
        Contact:

        Re: DynamicFields in different Customer groups

        Post by tto » 27 Sep 2016, 16:49

        labasus wrote:Looks very promise, but still can't move forward (because of ACL is not documented well for these unstandart case):
        1) For different customer group used "Ticket Template Configurator" with predefined Queue A or B (depending on customer group)
        2) DF with name "place" must be hidding for customer group_A, which use Queue name "group_A" (queue id=2)

        ConfigChange:
        Possible:
        Form:
        DynamicField_place:
        - '0'
        ConfigMatch:
        Properties:
        Queue:
        QueueID:
        - '2'
        Description: ''
        ID: '3'
        Name: LastKnowPlace
        StopAfterMatch: '1'
        ValidID: '1'

        Doesn't work... :(
        try the following changes to your ACL really importat is just the removed "Dynamicfield_" before "place". If you match Queue-Properties rather than Ticket-Properties, QueueID should be replaced by "ID" because it's a sub-attribute-name of queue. Anyway the filter for queue I'd configure like that:

        Code: Select all

          ConfigChange:
            Possible:
              Form:
                place:
                - '0'
          ConfigMatch:
            Properties:
              Ticket:
                Queue:
                - 'BetterUseYourQueueName'
          Description: ''
          ID: '3'
          Name: LastKnowPlace
          StopAfterMatch: '1'
          ValidID: '1'
        
        --
        KIX 17.x (fork of OTRS)
        Professional KIX-, or OTRS-integration, development and consulting by c.a.p.e. IT - http://www.cape-it.de
        For questions and hints regarding KIX(4OTRS) please go to https://forum.kixdesk.com/
        Bei Fragen und Hinweisen zu KIX(4OTRS) bitte an https://forum.kixdesk.com/ wenden.

        labasus
        OTRS newbie
        Posts: 17
        Joined: 26 Oct 2011, 23:58
        OTRS Version?: 5.0.11

        Re: DynamicFields in different Customer groups

        Post by labasus » 27 Sep 2016, 18:40

        Strange, but doesn't work..
        All DynamicFields must be enabled in DynamicField SysConfig Settings -> CustomerTicketMessage must be ticked to show it (or to hide it with ACL)?

        Where I can find kix4otrs documentation for developers with ACL description?
        try the following changes to your ACL really importat is just the removed "Dynamicfield_" before "place". If you match Queue-Properties rather than Ticket-Properties, QueueID should be replaced by "ID" because it's a sub-attribute-name of queue. Anyway the filter for queue I'd configure like that:

        Code: Select all

          ConfigChange:
            Possible:
              Form:
                place:
                - '0'
          ConfigMatch:
            Properties:
              Ticket:
                Queue:
                - 'BetterUseYourQueueName'
          Description: ''
          ID: '3'
          Name: LastKnowPlace
          StopAfterMatch: '1'
          ValidID: '1'
        

        User avatar
        tto
        Moderator
        Posts: 315
        Joined: 09 Jan 2007, 15:24
        OTRS Version?: OTRS 5.0.x
        Real Name: Torsten
        Company: c.a.p.e. IT GmbH
        Location: Chemnitz
        Contact:

        Re: DynamicFields in different Customer groups

        Post by tto » 28 Sep 2016, 10:51

        OK - let's start from scratch:
        • Which OTRS- and KIX4OTRS-Versions do you use?
        • Which dynamic fields are relevant how are their names?
        • How does at lease one queue is named and which DFs should be hidden in input screens if this queue is selected (to cross-check with your ACL)?
        • How does your ACL(s) look like?
        • Are these ACLs enabled?
        • Do you check with other users than UserID 1?
        labasus wrote:Strange, but doesn't work..
        All DynamicFields must be enabled in DynamicField SysConfig Settings -> CustomerTicketMessage must be ticked to show it (or to hide it with ACL)?
        Where I can find kix4otrs documentation for developers with ACL description?
        ...the documentation on this is not very obvious, I'd even say it's missing. I'll file this as a "documentation bug".

        regards, T.
        --
        KIX 17.x (fork of OTRS)
        Professional KIX-, or OTRS-integration, development and consulting by c.a.p.e. IT - http://www.cape-it.de
        For questions and hints regarding KIX(4OTRS) please go to https://forum.kixdesk.com/
        Bei Fragen und Hinweisen zu KIX(4OTRS) bitte an https://forum.kixdesk.com/ wenden.

        labasus
        OTRS newbie
        Posts: 17
        Joined: 26 Oct 2011, 23:58
        OTRS Version?: 5.0.11

        Re: DynamicFields in different Customer groups

        Post by labasus » 28 Sep 2016, 13:43

        > Which OTRS- and KIX4OTRS-Versions do you use?
        OTRS 5.0.11
        KIX4OTRS 8.0.6
        and other extentions (latest versions) like: AccountedTimeInOverview, CustomerUserImportExport, DynamicFieldRemoteDB, ImportExport, OutOfOfficeNoStateChange, SystemMonitoring,TemplateX, UserImportExport

        > Which dynamic fields are relevant how are their names?
        For this moment IIm'm testing only with one DF for testing with DF name "place" (field type - Text, object type - Ticket, field order - last one, Show in frontend modules (ticked) - CustomerTicketMessage)

        > How does at lease one queue is named and which DFs should be hidden in input screens if this queue is selected (to cross-check with your ACL)?
        Queue: "SANDELIAI::Apsauga" where DF "place" must be hidden
        Queue: "SANDELIAI::Kedainiai" where DF "place" must be not hidden

        So, AdminQuickTicketConfigurator was used to make different forms for different Customer groups with predefined Queue
        Customer group "Apsauga" can see only SANDELIAI::Apsauga and predefined SANDELIAI::Apsauga and text
        Customer group "Kedainiai" can see only SANDELIAI::Kedainiai and predefined SANDELIAI::Kedainiai and text

        > How does your ACL(s) look like?

        Code: Select all

        ConfigChange:
            Possible:
              Form:
                place:
                - '0'
          ConfigMatch:
            Properties:
              Ticket:
                Queue:
                - 'SANDELIAI::Apsauga'
          Description: ''
          ID: '3'
          Name: LastKnowPlace
          StopAfterMatch: '1'
          ValidID: '1'
          
        I've tried to use and Raw queue for testing... (nothing)

        > Are these ACLs enabled?
        Yes, sure and synchronized every time after changes

        > Do you check with other users than UserID 1?
        Yes

        User avatar
        tto
        Moderator
        Posts: 315
        Joined: 09 Jan 2007, 15:24
        OTRS Version?: OTRS 5.0.x
        Real Name: Torsten
        Company: c.a.p.e. IT GmbH
        Location: Chemnitz
        Contact:

        Re: DynamicFields in different Customer groups

        Post by tto » 28 Sep 2016, 16:22

        labasus wrote:[..]
        one idea - if the field is shown on initial mask display - try to change some value in order to cause an AJAX-Request - does the visibility change? I think there's a bug with the initial display.

        regards, T.
        --
        KIX 17.x (fork of OTRS)
        Professional KIX-, or OTRS-integration, development and consulting by c.a.p.e. IT - http://www.cape-it.de
        For questions and hints regarding KIX(4OTRS) please go to https://forum.kixdesk.com/
        Bei Fragen und Hinweisen zu KIX(4OTRS) bitte an https://forum.kixdesk.com/ wenden.

        labasus
        OTRS newbie
        Posts: 17
        Joined: 26 Oct 2011, 23:58
        OTRS Version?: 5.0.11

        Re: DynamicFields in different Customer groups

        Post by labasus » 28 Sep 2016, 20:10

        Finally... ACL really works and DF can such hidding magic:)
        My trouble was only because of Customer form was without Queue selection field, it was predefined with QuickText forms.

        Almost happy, but... now all DF are showing up until Queue hide some of them by ACL rules.

        Is it possible to change logical model (up side down): Hide all of them (DF), until Queue will be chosen and ACL rules will begin show/hide magic?

        Thx.
        tto wrote:
        labasus wrote:[..]
        one idea - if the field is shown on initial mask display - try to change some value in order to cause an AJAX-Request - does the visibility change? I think there's a bug with the initial display.

        regards, T.

        User avatar
        tto
        Moderator
        Posts: 315
        Joined: 09 Jan 2007, 15:24
        OTRS Version?: OTRS 5.0.x
        Real Name: Torsten
        Company: c.a.p.e. IT GmbH
        Location: Chemnitz
        Contact:

        Re: DynamicFields in different Customer groups

        Post by tto » 28 Sep 2016, 21:15

        labasus wrote:Finally... ACL really works and DF can such hidding magic:)
        My trouble was only because of Customer form was without Queue selection field, it was predefined with QuickText forms.

        Almost happy, but... now all DF are showing up until Queue hide some of them by ACL rules.

        Is it possible to change logical model (up side down): Hide all of them (DF), until Queue will be chosen and ACL rules will begin show/hide magic?
        ...not yet :-/ but it is planned to add/fix that.
        --
        KIX 17.x (fork of OTRS)
        Professional KIX-, or OTRS-integration, development and consulting by c.a.p.e. IT - http://www.cape-it.de
        For questions and hints regarding KIX(4OTRS) please go to https://forum.kixdesk.com/
        Bei Fragen und Hinweisen zu KIX(4OTRS) bitte an https://forum.kixdesk.com/ wenden.

        labasus
        OTRS newbie
        Posts: 17
        Joined: 26 Oct 2011, 23:58
        OTRS Version?: 5.0.11

        Re: DynamicFields in different Customer groups

        Post by labasus » 28 Sep 2016, 22:08

        First of all thank you for the quick and constructive answers, I'll be waiting for this add/fix and I could be a beta tester as also.
        Just pm

        Thx one more time.
        ...not yet :-/ but it is planned to add/fix that.

        brianmark2
        OTRS newbie
        Posts: 13
        Joined: 01 Sep 2014, 05:52
        OTRS Version?: 3.3.8
        Real Name: Brian
        Company: none

        Re: DynamicFields in different Customer groups

        Post by brianmark2 » 04 Oct 2016, 15:12

        Hi Sir,

        How did you do it?

        could you show us your screenshot acl configuration.

        Thank you

        labasus
        OTRS newbie
        Posts: 17
        Joined: 26 Oct 2011, 23:58
        OTRS Version?: 5.0.11

        Re: DynamicFields in different Customer groups

        Post by labasus » 08 Oct 2016, 10:17

        http://joxi.ru/n2Y8K8bfjL6KKm
        brianmark2 wrote:Hi Sir,

        How did you do it?

        could you show us your screenshot acl configuration.

        Thank you

        brianmark2
        OTRS newbie
        Posts: 13
        Joined: 01 Sep 2014, 05:52
        OTRS Version?: 3.3.8
        Real Name: Brian
        Company: none

        Re: DynamicFields in different Customer groups

        Post by brianmark2 » 11 Oct 2016, 05:02

        Thank you Sir,

        Did you define anything from this sysconfig?
        Ticket::Frontend::DynamicField###DisabledDynamicFields
        How did you do it?

        Thank you
        labasus wrote:http://joxi.ru/n2Y8K8bfjL6KKm
        brianmark2 wrote:Hi Sir,

        How did you do it?

        could you show us your screenshot acl configuration.

        Thank you

        labasus
        OTRS newbie
        Posts: 17
        Joined: 26 Oct 2011, 23:58
        OTRS Version?: 5.0.11

        Re: DynamicFields in different Customer groups

        Post by labasus » 16 Oct 2016, 12:10

        Just leave DisabledDynamicFields unfilled
        brianmark2 wrote:Thank you Sir,

        Did you define anything from this sysconfig?
        Ticket::Frontend::DynamicField###DisabledDynamicFields
        How did you do it?

        Thank you
        labasus wrote:http://joxi.ru/n2Y8K8bfjL6KKm
        brianmark2 wrote:Hi Sir,

        How did you do it?

        could you show us your screenshot acl configuration.

        Thank you

        labasus
        OTRS newbie
        Posts: 17
        Joined: 26 Oct 2011, 23:58
        OTRS Version?: 5.0.11

        Re: DynamicFields in different Customer groups

        Post by labasus » 16 Oct 2016, 12:11

        Just leave DisabledDynamicFields unfilled
        brianmark2 wrote:Thank you Sir,

        Did you define anything from this sysconfig?
        Ticket::Frontend::DynamicField###DisabledDynamicFields
        How did you do it?

        Thank you
        labasus wrote:http://joxi.ru/n2Y8K8bfjL6KKm
        brianmark2 wrote:Hi Sir,

        How did you do it?

        could you show us your screenshot acl configuration.

        Thank you

        Post Reply