; gm5.s is OBSOLETE. ; Keep this file to prevent it from appearing in upgrade installs ; ; Version 1.1 ; ; Theorhetically, GoldMine does not limit the number of characters inserted ; in the notes field. However, because the maximum DDE request item string ; length is 255 characters, the practical limit is 225 chars. ; For CardScan 4.x/5.x ; CardScan now checks if there is any email address or web address before ; transferring anything to Goldmine. It sends all the available email ; addresses for the card. ; For CardScan 3.x ONLY ; Goldmine stores E-mail address and Web Site address in separate ; database (CONTSUPP). If there is no email or web address ; in CardScan's card, a blank record for email and/or web address ; is still created in Goldmine. ; ; CardScan doesn't release memory used by the return values of the Requests which ; causes 'Insufficient memory' when transferring large number of cards. For a ; work around, we use temporary variable 'temp' which accepts all the return values ; that are not used. ;[Info] ;Name=GoldMine 5.0 Vendor=Corex Technologies Corp. Version=Version 1.1 MajorVersion=1 MinorVersion=1 ExeFile=GMW5.EXE ;[Aliases|en] En=GoldMine 5.0 De=GoldMine 5.0 (German) Fr=GoldMine 5.0 (French) ;[Aliases|de] En=GoldMine 5.0 De=GoldMine 5.0 (Deutsch) Fr=GoldMine 5.0 (Französisch) ;[Aliases|fr] En=GoldMine 5.0 De=GoldMine 5.0 (Allemand) Fr=GoldMine 5.0 (Français) [Send] Call ( ComposeName ) Request(goldmine, data, "[open(CONTACT1)]", %work_area) Request(,,"[open(CONTSUPP)]",%work_area1) Request(,,"[append(%work_area)]",%rec_num) Request(,,"[move(%work_area,GOTO,%rec_num)]",%temp) Request(,,"[read(%work_area,AccountNo)]",%acct_no) Request(,,"[replace(%work_area,company,\"%{company,40,5}\")]",%temp) Request(,,"[replace(%work_area,contact,\"%{_Name,40,4}\")]",%temp) Request(,,"[replace(%work_area,dear,\"%{name_prefix,20,4}\")]",%temp) Request(,,"[replace(%work_area,lastname,\"%{last_name,15,4}\")]",%temp) Request(,,"[replace(%work_area,title,\"%{title,35,5}\")]",%temp) Request(,,"[replace(%work_area,source,\"CardScan\")]",%temp) Request(,,"[replace(%work_area,phone1,\"%{phone,25,4}\")]",%temp) Request(,,"[replace(%work_area,phone2,\"%{phone_1,25,4}\")]",%temp) Request(,,"[replace(%work_area,ext2,\"%{phone_1.label,6,4}\")]",%temp) Request(,,"[replace(%work_area,phone3,\"%{phone_2,25,4}\")]",%temp) Request(,,"[replace(%work_area,ext4,\"%{phone_2.label,6,4}\")]",%temp) Request(,,"[replace(%work_area,fax,\"%{fax,25,4}\")]",%temp) Request(,,"[replace(%work_area,address1,\"%{address_line_1,40,4}\")]",%temp) Request(,,"[replace(%work_area,address2,\"%{address_line_2,40,4}\")]",%temp) Request(,,"[replace(%work_area,address3,\"%{address_line_3,40,4}\")]",%temp) Request(,,"[replace(%work_area,city,\"%{city,26,4}\")]",%temp) Request(,,"[replace(%work_area,state,\"%{state,20,4}\")]",%temp) Request(,,"[replace(%work_area,zip,\"%{zip,10,4}\")]",%temp) Request(,,"[replace(%work_area,country,\"%{country,20,4}\")]",%temp) Request(,,"[replace(%work_area,notes,\"%{notes,225,4}\")]",%temp) Request(,,"[append(%work_area1)]",%rec_num1) Request(,,"[move(%work_area1,GOTO,%rec_num1)]",%temp) Request(,,"[replace(%work_area1,accountno,\"%{acct_no,20,4}\")]",%temp) Request(,,"[replace(%work_area1,rectype,\"P\")]",%temp) Request(,,"[replace(%work_area1,contact,\"E-mail Address\")]",%temp) Request(,,"[replace(%work_area1,contsupref,\"%{email,35,4}\")]",%temp) Request(,,"[append(%work_area1)]",%rec_num1) Request(,,"[move(%work_area1,GOTO,%rec_num1)]",%temp) Request(,,"[replace(%work_area1,accountno,\"%{acct_no,20,4}\")]",%temp) Request(,,"[replace(%work_area1,rectype,\"P\")]",%temp) Request(,,"[replace(%work_area1,contact,\"Web Site\")]",%temp) Request(,,"[replace(%work_area1,contsupref,\"%{Web_Site,35,4}\")]",%temp) Request(,,"[unlock(%work_area)]",%temp) Request(,,"[unlock(%work_area1)]",%temp) Request(,,"[close(%work_area)]",%temp) Request(,,"[close(%work_area1)]",%temp) Request(,,"[recordobj(goto,%rec_num)]",%temp) [GetSelectInfo] Request(goldmine, data, "[open(contact1)]", %work_area) Request(, , "[read(%work_area, contact)]", %name) Request(, , "[read(%work_area, company)]", %company) Request(, , "[close(%work_area)]") ; 4.0 script ---------------------------------------------------------------- [FindFirst] Call( InitializeError ) ; standard error handling Call( InitVars ) ; initialize variables to use in the script Call( OpenConnection ) Request(goldmine,data,"[Move(%work_area,TOP)]",%sRet) if( IsEqual( %sRet, 3 ), Set( _FindFirst, 0 ), Call( FindContact )) [FindNext] Request(,,"[Move(%work_area,SKIP,1)]",%sRet) if( IsEqual( %sRet, 3 ), Set( _FindNext, 0 ), Call( GetContactInfo )) [NewCard] Call( ClearError ) If( IsEqual( %_Connected, 1 ), , Call( OpenConnection )) Set( _NewCard, 1 ) Request(,,"[append(%work_area)]",%rec_num) Request(,,"[move(%work_area,GOTO,%rec_num)]",%temp) [Update] Call ( ComposeName ) Request(,,"[read(%work_area,AccountNo)]",%acct_no) Request(,,"[replace(%work_area,company,\"%{company,40,5}\")]",%temp) Request(,,"[replace(%work_area,contact,\"%{_Name,40,4}\")]",%temp) Request(,,"[replace(%work_area,dear,\"%{name_prefix,20,4}\")]",%temp) Request(,,"[replace(%work_area,lastname,\"%{last_name,15,4}\")]",%temp) Request(,,"[replace(%work_area,title,\"%{title,35,5}\")]",%temp) Request(,,"[replace(%work_area,source,\"CardScan\")]",%temp) Request(,,"[replace(%work_area,phone1,\"%{phone,25,4}\")]",%temp) Request(,,"[replace(%work_area,phone2,\"%{phone_1,25,4}\")]",%temp) Request(,,"[replace(%work_area,ext2,\"%{phone_1.label,6,4}\")]",%temp) Request(,,"[replace(%work_area,phone3,\"%{phone_2,25,4}\")]",%temp) Request(,,"[replace(%work_area,ext4,\"%{phone_2.label,6,4}\")]",%temp) Request(,,"[replace(%work_area,fax,\"%{fax,25,4}\")]",%temp) Request(,,"[replace(%work_area,address1,\"%{address_line_1,40,4}\")]",%temp) Request(,,"[replace(%work_area,address2,\"%{address_line_2,40,4}\")]",%temp) Request(,,"[replace(%work_area,address3,\"%{address_line_3,40,4}\")]",%temp) Request(,,"[replace(%work_area,city,\"%{city,26,4}\")]",%temp) Request(,,"[replace(%work_area,state,\"%{state,20,4}\")]",%temp) Request(,,"[replace(%work_area,zip,\"%{zip,10,4}\")]",%temp) Request(,,"[replace(%work_area,country,\"%{country,20,4}\")]",%temp) Request(,,"[replace(%work_area,notes,\"%{notes,225,4}\")]",%temp) Set( _EmailWebAddr, %email ) If( IsNull( %_EmailWebAddr ), , Call( TransferEmailAddressRec )) Set( _EmailWebAddr, %email_1 ) If( IsNull( %_EmailWebAddr ), , Call( TransferEmailAddressRec )) Set( _EmailWebAddr, %email_2 ) If( IsNull( %_EmailWebAddr ), , Call( TransferEmailAddressRec )) Set( _EmailWebAddr, %email_3 ) If( IsNull( %_EmailWebAddr ), , Call( TransferEmailAddressRec )) Set( _EmailWebAddr, %email_4 ) If( IsNull( %_EmailWebAddr ), , Call( TransferEmailAddressRec )) Set( _EmailWebAddr, %email_5 ) If( IsNull( %_EmailWebAddr ), , Call( TransferEmailAddressRec )) Set( _EmailWebAddr, %email_6 ) If( IsNull( %_EmailWebAddr ), , Call( TransferEmailAddressRec )) Set( _EmailWebAddr, %web_page ) If( IsNull( %_EmailWebAddr ), , Call( TransferWebPageRec )) Call( CloseConnection ) [Finish] Request(goldmine,data,"[RecordObj(GoTo, %rec_num)]",%temp) Request(goldmine,data,"[RecordObj(REFRESH)]",%temp) ; ------------- Private procedures ---------------------------------- [InitVars] Set(_NewCard, 0) Set(_EmailWebAddr, "") Set(_EmailWebLabel, "") Set(_Connected, 0) [OpenConnection] Request(goldmine, data, "[open(CONTACT1)]", %work_area) Request(,,"[open(CONTSUPP)]",%work_area1) Set(_Connected, 1) If( IsEqual( %_scriptcode, "En"), Set(_EmailWebLabel, "Web Site"),) If( IsEqual( %_scriptcode, "De"), Set(_EmailWebLabel, "WebSite"),) If( IsEqual( %_scriptcode, "Fr"), Set(_EmailWebLabel, "Site Web"),) ; we are traversing all the records to find the desired contact [FindContact] Call( GetContactInfo ) [GetContactInfo] Request(,,"[Read(%work_area,contact)]",%name) Request(,,"[Read(%work_area,company)]",%company) ; if new card, then create new email record otherwise search the existing email records ; before updating/adding. [TransferEmailAddressRec] If( IsEqual( %_NewCard, 1 ), Call( CreateNewEmailWebRec ), Call( SearchEmailWebRec )) Request(,,"[RecNo(%work_area1)]",%temp) ; for Debug Request(,,"[replace(%work_area1,rectype,\"P\")]",%temp) Request(,,"[replace(%work_area1,contact,\"E-mail Address\")]",%temp) Request(,,"[replace(%work_area1,contsupref,\"%{_EmailWebAddr,35,4}\")]",%temp) ; creates a new email record and positions the record pointer [CreateNewEmailWebRec] Request(,,"[append(%work_area1)]",%rec_num1) Request(,,"[move(%work_area1,GOTO,%rec_num1)]",%temp) Request(,,"[replace(%work_area1,accountno,\"%{acct_no,20,4}\")]",%temp) ; searches for the email address. If not found creates a new email record. [SearchEmailWebRec] Set( _EmailWebAddressFound, 0 ) Request(,,"[Move(%work_area1,TOP)]",%temp) Request(,,"[Search(%work_area1,\"accountno=\'%acct_no\'\")]",%sRet) if( IsEqual( %sRet, 0 ), , if( IsNull( %sRet ), , Call( PerformEmailWebSearch ))) If( IsEqual( %_EmailWebAddressFound, 0 ), Call( CreateNewEmailWebRec ), ) ; Reads email/web address and verifies if this what we want to transfer. [PerformEmailWebSearch] Request(,,"[Read(%work_area1, ContSupRef)]", %_SomeInfo) Request(,,"[Expr(\"Trim(\'%_SomeInfo\')\")]",%_SomeInfo) If(IsEqual( %_SomeInfo, %_EmailWebAddr ), Set( _EmailWebAddressFound, 1), Call(MoveToNextRec)) ; Tries to move to next logical record. If available then checks for email/web address. [MoveToNextRec] Request(,,"[Search(%work_area1,\"AccountNo=\'%acct_no\'\")]",%sRet) If( IsEqual( %sRet, 0 ), , If( IsNull( %sRet ), , Call( PerformEmailWebSearch ))) ; to transfer web page [TransferWebPageRec] If( IsEqual( %_NewCard, 1 ), Call( CreateNewEmailWebRec ), Call( SearchEmailWebRec )) Request(,,"[replace(%work_area1,rectype,\"P\")]",%temp) Request(,,"[replace(%work_area1,contact,\"%{_EmailWebLabel}\")]",%temp) Request(,,"[replace(%work_area1,contsupref,\"%{_EmailWebAddr,35,4}\")]",%temp) [CloseConnection] Request(,,"[unlock(%work_area)]",%temp) Request(,,"[unlock(%work_area1)]",%temp) Request(,,"[close(%work_area)]",%temp) Request(,,"[close(%work_area1)]",%temp) Set(_Connected, 0) ; compose name without name prefix [ComposeName] Set( _Name, %first_name ) If( IsNull( %_Name ), Set( _Name, %middle_name ), Call( AppendMiddleName )) If( IsNull( %_Name ), Set( _Name, %last_name), Call( AppendLastName )) if( IsNull( %_Name ), Set( _Name, %name_suffix), Call( AppendNameSuffix )) [AppendMiddleName] If( IsNull( %middle_name ), , Set( _Name, %_Name %middle_name )) [AppendLastName] If( IsNull( %last_name ), , Set( _Name, %_Name %last_name )) [AppendNameSuffix] If( IsNull( %name_suffix ), , Set( _Name, "%_Name, %name_suffix" )) ; **************** standard error handling routines ********** ; Error flag values: ; 0 - Success ; -1 - Unknown Error ; InitializeError initializes error codes and resets the error ; flag status. [InitializeError] Set(_success, 0) Set(_UnknownError, -1) Call(ClearError) ; clears/resets the error flag [ClearError] Set(_error, %_success)