VBScript voorbeelden

<< Click to Display Table of Contents >>

Navigation:  Customization > VBScript >

VBScript voorbeelden

Previous pageReturn to chapter overviewNext page

 

In dit hoofdstuk worden enkele voorbeelden getoond van de VBScript-mogelijkheden binnen Logicworks CRM. In de voorbeelden wordt veelvuldig gebruikt gemaakt van het Logicworks CRM Objectmodel. Een subset van de methoden en properties van het Objectmodel is beschikbaar gesteld aan de gebruikers en is toepasbaar vanuit VBScript.

 

Hieronder zijn enkele voorbeelden van Form Event scripts opgenomen:

 

 

Werken met tabellen

Bij het opvragen of verwerken van gegevens uit de CRM database wordt gebruik gemaakt van een ADO connectie. De volgende constanten kunnen de leesbaarheid van het script sterk vergroten:

 

Const adOpenForwardOnly = 0

Const adOpenKeyset = 1

Const adOpenDynamic = 2

Const adOpenStatic = 3

 

Const adLockReadOnly = 1

Const adLockPessimistic = 2

Const adLockOptimistic = 3

Const adLockBatchOptimistic = 4

 

Const adCmdText = 1

 

 

Voorbeeld: OnChange()

Nadat een gebruiker de postcode heeft ingevuld, wordt deze opgezocht in de tabel NLPostcode, waarna de bijbehorende plaatsnaam wordt overgenomen in het invoerveld 'Plaats'.

 

Function crmScript()

 

Const adOpenForwardOnly = 0

Const adLockReadOnly = 1

Const adCmdText = 1

 

Set rstPostcode = CreateObject( "ADODB.Recordset" )

 

'Zoek de plaatsnaam van een ingevoerde Nederlandse postcode

strSql = "SELECT Plaats FROM NLPostcode WHERE Postcode = '" & Left( ActiveForm.Address1Postcode.Text, 4 ) & "'"

rstPostcode.Open strSql, LWCRM.Database.Connection, adOpenForwardOnly, adLockReadOnly, adCmdText

 

'Vervang de plaatsnaam met de aan de postcode gerelateerde plaatsnaam

If not rstPostcode.EOF Then ActiveForm.Address1City.Text = rstPostcode.Fields("Plaats").Value

 

rstPostcode.Close

 

End Function

 

 

Voorbeeld: PostCreate()

In het volgende voorbeeld wordt het adres van een nieuw Bedrijf toegevoegd aan de gekoppelde tabel Addresses.

 

Function crmScript()

 

Dim xmlAddress

 

xmlAddress = "<Address>" & _

            "<Objecttype>2</Objecttype>" & _

            "<ObjectId>" & ActiveForm.AccountId.Text & "</ObjectId>" & _

            "<AddressType>" & ActiveForm.Address1AddressType.ListIndex & "</AddressType>" & _

            "<AddressLine1>" & ActiveForm.Address1Line1.Text & "</AddressLine1>" & _

            "<AddressLine2>" & ActiveForm.Address1Line2.Text & "</AddressLine2>" & _

            "<HouseNumber>" & ActiveForm.Address1HouseNumber.Text & "</HouseNumber>" & _

            "<Postcode>" & ActiveForm.Address1Postcode.Text & "</Postcode>" & _

            "<City>" & ActiveForm.Address1City.Text & "</City>" & _

            "<CountryCode>" & ActiveForm.Address1CountryCode.KeyValue & "</CountryCode>" & _

            "</Address>"

 

Call LWCRM.Address.Create( LWCRM.User.UserId, xmlAddress )

 

End Function

 

 

Voorbeeld: PostImport()

Na het importeren van voorraadmutaties uit een externe bron wordt de voorraad bijgewerkt.

 

Function crmScript()

 

 Const adOpenForwardOnly = 0

 Const adLockReadOnly = 1

 Const adCmdText = 1

 

 Set rstTransaction = CreateObject( "ADODB.Recordset" )

 

 'Verwerk alle geimporteerde en nog niet verwerkte voorraadkorrekties

 strSql = "SELECT * FROM StockTransactions WHERE TransactionType = 3 AND Processed = 0"

 rstTransaction.Open strSql, LWCRM.Database.Connection, adOpenForwardOnly, adLockReadOnly, adCmdText

 Do While Not rstTransaction.EOF

   

   'Converteer het huidige record naar XML formaat

   xmlData = LWCRM.XML.RowToXML("stocktransaction", rstTransaction)

 

   'Verwerk de voorraadkorrektie en markeer de transactie als verwerkt

   If Not LWCRM.Stock.ProcessTransaction(LWCRM.User.UserId, xmlData, True) Then

     rstTransaction.Close

     crmScript = False

     Exit Function

   End If

   

   rstTransaction.MoveNext

 Loop

 rstTransaction.Close

 

 crmScript = True

 

End Function