<< Click to Display Table of Contents >> VBScript voorbeelden |
|
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:
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
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
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
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