首页 > 解决方案 > 通过 SOAP 访问特定的 OTRS 动态字段值

问题描述

如何进一步访问此动态字段值?在使用下面的翻斗车时,

print Dumper( $Body->{$ResponseKey} );

结果是:

$VAR1 = {
          'Ticket' => {
                      'Title' => 'TPLUS Service PIC',
                      'DynamicField' => [
                                        {
                                          'Value' => '43312',
                                          'Name' => 'BugID'
                                        },                                       
                                        {
                                          'Value' => '6',
                                          'Name' => 'OTRSMV'
                                        },
                                        {
                                          'Value' => '6.13',
                                          'Name' => 'OTRSPLV'
                                        },
                                        {
                                          'Value' => 'Dev',
                                          'Name' => 'OTRSUse'
                                        },
                                        {
                                          'Value' => '2018-03-02 00:28:00',
                                          'Name' => 'RefDate'
                                        },
                                        {
                                          'Value' => '0',
                                          'Name' => 'RefNumber'
                                        },
                                        {
                                          'Value' => '',
                                          'Name' => 'StartTime'
                                        }
                                      ],
                      'StateType' => 'open',
                      'SLAID' => ''
                }
    };

如何访问 DynamicField->RefDate 的单个值?谢谢

标签: perlsoapotrs

解决方案


my $fields = $Body->{$ResponseKey}{Ticket}{DynamicField};

my ($ref_date) =
   map $_->{Value},
      grep $_->{Name} eq 'RefDate',
         @$fields;

或者

my %fields;
$fields{ $_->{Name} } = $fields{ $_->{Value} }
   for @{ $Body->{$ResponseKey}{Ticket}{DynamicField} };

my $ref_date = $fields{RefDate};

推荐阅读