| 17 |
|
|
| 18 |
=head1 SYNOPSIS |
=head1 SYNOPSIS |
| 19 |
|
|
| 20 |
=head2 BASIC ACCESS |
=head2 ACCESS |
| 21 |
|
|
| 22 |
=head2 ADVANCED ACCESS |
# connect to LDAP |
| 23 |
|
my $ldapLocator = Data::Storage::Locator->new( |
| 24 |
... via inheritance: |
ldap => { |
| 25 |
|
type => "NetLDAP", |
| 26 |
use Data::Storage; |
dsn => "ldap:host=192.168.10.150;binddn='cn=root, o=netfrag.org, c=de';pass=secret", |
| 27 |
my $proxyObj = new HttpProxy; |
basedn => "o=netfrag.org, c=de", |
| 28 |
$proxyObj->{url} = $url; |
want_transactions => 0, |
| 29 |
$proxyObj->{payload} = $content; |
syncable => 1, |
| 30 |
$self->{storage}->insert($proxyObj); |
}, |
| 31 |
|
); |
| 32 |
use Data::Storage; |
my $ldapStorage = Data::Storage->new($ldapLocator); |
| 33 |
my $proxyObj = HttpProxy->new( |
$ldapStorage->connect(); |
| 34 |
url => $url, |
|
| 35 |
payload => $content, |
# connect to MAPI |
| 36 |
); |
my $mapiLocator = Data::Storage::Locator->new( |
| 37 |
$self->{storage}->insert($proxyObj); |
outlook => { |
| 38 |
|
type => "MAPI", |
| 39 |
|
showProfileChooser => $self->{config}->get("mapi_showProfileChooser"), |
| 40 |
|
ProfileName => $self->{config}->get("mapi_ProfileName"), |
| 41 |
|
ProfilePass => $self->{config}->get("mapi_ProfilePass"), |
| 42 |
|
syncable => 1, |
| 43 |
|
}, |
| 44 |
|
); |
| 45 |
|
my $mapiStorage = Data::Storage->new($mapiLocator); |
| 46 |
|
$mapiStorage->connect(); |
| 47 |
|
|
| 48 |
|
|
| 49 |
=head2 SYNCHRONIZATION |
=head2 SYNCHRONIZATION |
| 50 |
|
|
| 51 |
|
This functionality is (in the meanwhile) provided by the Data::Transfer::Sync module. |
| 52 |
|
|
| 53 |
|
=head3 proposal V1 |
| 54 |
|
|
| 55 |
my $nodemapping = { |
my $nodemapping = { |
| 56 |
'LangText' => 'langtexts.csv', |
'LangText' => 'langtexts.csv', |
| 57 |
'Currency' => 'currencies.csv', |
'Currency' => 'currencies.csv', |
| 103 |
# create new sync object |
# create new sync object |
| 104 |
my $sync = Data::Transfer::Sync->new( |
my $sync = Data::Transfer::Sync->new( |
| 105 |
storages => { |
storages => { |
| 106 |
L => $self->{bizWorks}->{backend}, |
L => $self->{storage}->{backend}, |
| 107 |
R => $self->{bizWorks}->{resources}, |
R => $self->{storage}->{resources}, |
| 108 |
}, |
}, |
| 109 |
id_authorities => [qw( L ) ], |
id_authorities => [qw( L ) ], |
| 110 |
checksum_authorities => [qw( L ) ], |
checksum_authorities => [qw( L ) ], |
| 127 |
|
|
| 128 |
} |
} |
| 129 |
|
|
| 130 |
|
=head3 proposal V2 |
| 131 |
|
|
| 132 |
|
# create a new synchronization object |
| 133 |
|
my $sync = Data::Transfer::Sync->new( 'sync_version' => $sync_version, __parent => $self ); |
| 134 |
|
|
| 135 |
|
# configure the synchronization-object |
| 136 |
|
$sync->configure( |
| 137 |
|
source => { |
| 138 |
|
storage => { |
| 139 |
|
handle => $mapiStorage, |
| 140 |
|
#isIdentAuthority => 1, |
| 141 |
|
#isChecksumAuthority => 1, |
| 142 |
|
#writeProtected => 1, |
| 143 |
|
}, |
| 144 |
|
}, |
| 145 |
|
target => { |
| 146 |
|
storage => { |
| 147 |
|
handle => $ldapStorage, |
| 148 |
|
#idAuthority => 1, |
| 149 |
|
#isChecksumAuthority => 1, |
| 150 |
|
#isWriteProtected => 0, |
| 151 |
|
}, |
| 152 |
|
}, |
| 153 |
|
verbose => 1, |
| 154 |
|
); |
| 155 |
|
|
| 156 |
|
|
| 157 |
=head2 NOTE |
=head2 NOTE |
| 158 |
|
|