[ic] Accessing $Db or $Sql in Jobs?
John Young
john_young at sonic.net
Wed Jan 5 21:22:32 EST 2005
Ethan Rowe wrote:
> Jeff Fearn wrote:
>
>> Hi, how do you make $Db or $Sql accessable to usertags run using the
>> jobs functionality?
>>
>> I have a job which uses a new usertag, however $Db and $Sql are empty.
>>
>> I have used $Db and $Sql in another usertag; which is used in the
>> order routing; without a problem. I am assuming this is something to
>> do with this tag being used via the job queue ... this may be a very
>> bad assumption :}
>>
>> I have tried setting "AllowGlobal foundation" in interchange.cfg,
>> which I really don't want to do, with no effect.
>>
>> The job just contains:
>>
>> [x12_945]
>>
>> The tag code is:
>> UserTag x12_945 Routine <<EOR
>> sub
>> {
>> # Make sure we have the EDI module installed
>> eval
>> {
>> use X12::Base;
>> };
>>
>> if($@)
>> {
>> ::logError("Could not load X12::Base Module. X12-945
>> processing failed!\n");
>> return(1);
>> }
>>
>> # Both of these always die
>> my $dbh = $Sql{orderline} or die("No SQL orderline database!\n");
>> my $ref = $Db{orderline} or die("No orderline database!\n");
>>
>> .....
>> }
>>
>> TIA, Jeff.
>> __
>>
> Having not yet used IC jobs myself, I may be totally useless. That said:
> Is the usertag defined for a single catalog, or as an Interchange global
> tag?
>
> The $Db and $Sql objects aren't available at the global level. You can
> effectively access the $Db object for a particular table at the global
> level, however, via:
> my $dbh = database_exists_ref( $tablename );
> $dbh = $dbh->ref();
>
> From there, $dbh gives you access to functions like query().
>
> I hope this is of some use.
> - Ethan
The following link might help, as well, if you are not already familiar
with its content:
http://www.icdevgroup.org/pipermail/interchange-users/2004-December/041551.html
-John Young
More information about the interchange-users
mailing list