Loans Processing Using Business Rules (esempio di BizTalk Server)
Nell'esempio Loans Processing Using Business Rules viene illustrato come utilizzare un set di regole gestite in un'orchestrazione e come utilizzare una combinazione di input, noti come fact, per calcolare le impostazioni per alcuni campi all'interno di un documento di cui è in corso l'elaborazione. I fact possono essere il risultato della chiamata di un assembly basato su .NET, i valori recuperati dall'XML del messaggio o i dati recuperati da un database. Nell'esempio viene inoltre illustrato come sia possibile modificare le regole in qualsiasi momento, influendo sui successivi calcoli senza che sia necessario eseguire nuovamente la distribuzione.
Scopo dell'esempio
Questo esempio illustra queste funzionalità nel contesto di uno scenario di elaborazione dei prestiti semplificato. BizTalk Server'orchestrazione preleva ed elabora una richiesta di prestito, nota anche come caso di prestito, in formato messaggio XML. Questa orchestrazione utilizza il Motore regole di business per valutare i messaggi in arrivo in base alle regole, modificando il messaggio con il risultato dell'applicazione delle regole e quindi scrivendo il messaggio come file in una cartella di output.
In base ai fatti di diverse origini, incluso il messaggio elaborato, questo esempio imposta gli elementi IncomeStatus, CommitmentsStatus, EmploymentStatus e ResidencyStatus del messaggio in fase di elaborazione.
Percorso dell'esempio
<Percorso esempi>\Regole business\Elaborazione prestiti tramite regole business\
Nella seguente tabella sono riportati i file inclusi nell'esempio e ne viene descritto lo scopo.
File | Descrizione |
---|---|
Case.xsd | File di schema per le richieste di prestito in ingresso. |
Cleanup.bat | Viene utilizzato per annullare la distribuzione degli assembly e rimuoverli dalla Global Assembly Cache. Consente inoltre di rimuovere porte di trasmissione e ricezione. Consente infine di rimuovere le directory virtuali di Microsoft Internet Information Services (IIS), se necessario. |
Create_CustInfo_Table.sql | Script SQL per la creazione della tabella CustInfo nel database di esempio Northwind di SQL Server. |
LoanProcessorBinding.xml | Utilizzato per l'impostazione automatica, ad esempio il binding delle porte. |
LoansProcessor.btproj, LoansProcessor.sln | File di progetto e di soluzione di BizTalk per questo esempio. |
My Sample Service.odx | BizTalk Server orchestrazione per questo esempio. |
sampleLoan.xml | File di input di esempio, con i valori vuoti per i quattro elementi di stato alla fine della struttura XML nel file. |
Setup.bat | Utilizzato per compilare e inizializzare l'esempio. |
Nella cartella \CreateRules: App.ico, AssemblyInfo.cs, Case.xsd, CreateLoanProcessingPolicy.csproj, CreateLoanProcessingPolicy.sln, WriteToBRL.cs |
File del progetto Visual C#, di soluzione e di origine, nonché file correlati utilizzati per creare l'applicazione da cui vengono create le regole nel set a livello di codice. Per esempi di compilazione di set di regole a livello di codice, fare riferimento al file di origine WriteToBRL.cs. |
Nella cartella \myFactRetriever: AssemblyInfo.cs FactRetrieverForLoansProcessing.cs myFactRetriever.csproj myFactRetriever.sln |
File del progetto Visual C#, di soluzione e di origine, nonché file correlati utilizzati per creare un assembly utilizzato per recuperare informazioni dalla tabella CustInfo aggiunta in precedenza al database di esempio Northwind di SQL Server. |
Compilazione e inizializzazione dell'esempio
Verificare che nel computer in uso sia presente il database Northwind.
Importante
Per eseguire questo esempio, è necessario disporre del database di esempio Northwind SQL Server. Per scaricare, passare ai database di esempio Northwind e pubs per Microsoft SQL Server.
In una finestra di comando passare alla seguente cartella:
<Percorso esempi>\Regole business\Elaborazione prestiti tramite regole business
Eseguire il file Setup.bat. Verranno eseguite le operazioni seguenti:
Pulizia della GAC per eliminare tutti i dati residui da precedenti esecuzioni di questo esempio.
Compilazione e distribuzione del programma funzione recupero fact myFactRetreiever.dll.
Aggiunta di una tabella denominata CustInfo al database di esempio Northwind di SQL Server mediante il file di script SQL Create_CustInfo_Table.sql.
Pulizia dell'archivio regole SQL condiviso per eliminare gli elementi residui di esecuzioni precedenti di questo esempio.
Creazione, pubblicazione e distribuzione della versione più recente (1.0) del set di regole per le richieste di prestiti.
Nota
È possibile usare lo strumento Business Rule Composer fornito con BizTalk Server per esaminare le regole impostate a livello di codice.
Creazione delle cartelle di input (In) e di output (Out) per l'esempio.
Compila e distribuisce i progetti di Visual Studio rimanenti per questo esempio, incluso il progetto BizTalk che contiene l'orchestrazione usata per coordinare questo esempio.
Creazione e binding dell'indirizzo di ricezione di BizTalk e delle porte di trasmissione e ricezione.
Nota
Nell'esempio vengono visualizzati gli avvisi seguenti durante la creazione e il binding delle porte:
Warning: Receive handler not specified for receive location "LoansProcessor_1.0.0.0_LoansProcessor.My_Sample_Service_Incoming_ReceiveLocation"; updating with first receive handler with matching transport type.
Warning: Host not specified for orchestration "LoansProcessor.My_Sample_Service"; updating with first available host.
È possibile ignorare tali avvisi. Per ovviare a possibili differenze di denominazione nelle installazioni utente, il nome host e il gestore di ricezione sono stati omessi dal file di associazione.
Abilita l'indirizzo di ricezione e avvia la porta di trasmissione.
Integrazione e avvio dell'orchestrazione.
Nota
- Se il nome host BizTalk non è BizTalkServerApplication, modificare il file Setup.bat e il file LoanProcessorBinding.xml in base al nome host appropriato.
- Prima di provare a eseguire l'esempio, è necessario verificare che BizTalk Server non abbia segnalato errori durante il processo di generazione e inizializzazione.
- Se si sceglie di aprire e compilare i progetti dell'esempio senza eseguire il file Setup.bat, è necessario creare prima una coppia di chiavi con nome sicuro utilizzando l'utilità Nome sicuro di .NET Framework (sn.exe). e utilizzarla per firmare gli assembly risultanti.
- Per annullare le modifiche apportate da Setup.bat, eseguire Cleanup.bat. È necessario eseguire Cleanup.bat prima di eseguire Setup.bat una seconda volta.
Esecuzione dell'esempio
Per eseguire l'esempio Loans Processing Using Business Rules
Incollare una copia del file sampleLoan.xml nella cartella \In .
Osservare il file .xml creato nella cartella Out. Contiene il messaggio XML di input con i dati aggiunti ai quattro elementi di stato seguenti alla fine della struttura XML: IncomeStatus, CommitmentsStatus, EmploymentStatus e ResidencyStatus.
È possibile utilizzare lo strumento Creazione regole di business per modificare le regole nel set di regole e quindi ridistribuirle.
Per utilizzare lo strumento Creazione regole di business per modificare una o più regole in un set di regole
Fare clic su Start, scegliere Programmi, Microsoft BizTalk Server 20xx e quindi fare clic su Business Rule Composer.
Nota
In un sistema che supporta il controllo dell'account utente, potrebbe essere necessario eseguire lo strumento con i privilegi amministrativi. A tale scopo, fare clic con il pulsante destro del mouse sull'applicazione e quindi scegliere Esegui come amministratore.
Nella finestra di dialogo SQL Server fare clic su OK per connettersi all'archivio regole.
In Esplora criteri, sotto il nodo LoanProcessing, fare clic con il pulsante destro del mouse sul nodo Versione 1.0 - Distribuita e quindi scegliere Copia.
Fare clic con il pulsante destro del mouse su LoanProcessing e quindi scegliere Incolla.
Modificare qualsiasi regola o azione in modo da ottenere valori diversi per gli elementi IncomeStatus, CommitmentsStatus, EmploymentStatus e ResidencyStatus . Assicurarsi di modificare anche il valore della parte di negazione (essenzialmente, la clausola Else ) di qualsiasi regola che si sceglie di modificare.
Nella tabella seguente viene illustrato il set di regole utilizzate dall'esempio. Se non diversamente specificato, i fact provengono dal messaggio XML in arrivo. La stringa (db) indica un database come origine di un fact.
Numero regola Nome regola Descrizione 1 Income Status Rule IF BasicSalary + OtherIncome> 0
THEN IncomeStatus = Valid2 Commitments Status Rule ID == IF(db)
AND
IF CreditCardBalance (db)> 500
THEN CommitmentsStatus =
"Calcola impegni"3 Employment Status Rule IF EmploymentType | TimeInMonths> 18
THEN EmploymentStatus = Valid4 Residency Status Rule IF PlaceOfResidence | TimeInMonths> 18
THEN ResidencyStatus = Valido!1, !2, !3, !4 Regole di negazione Condizioni che sono un NOT logico della condizione corrispondente descritta nelle regole 1-4. Le azioni risultanti sono una modifica nella stringa impostata. Fare clic con il pulsante destro del mouse sul nodo Versione 1.1(non salvato) e quindi scegliere Salva.
Fare clic con il pulsante destro del mouse sul nodo Versione 1.1 e quindi scegliere Pubblica.
Fare clic con il pulsante destro del mouse sul nodo Versione 1.1 e quindi scegliere Distribuisci.
Attendere 60 secondi che le modifiche vengano propagate nell'archivio regole di SQL Server condiviso.
Incollare una copia del file sampleLoan.xml nella cartella In.
Osservare il file .xml creato nella cartella Out. Contiene il messaggio XML di input con i dati aggiunti ai quattro elementi di stato seguenti alla fine della struttura XML: IncomeStatus, CommitmentsStatus, EmploymentStatus e ResidencyStatus. Rispetto all'esecuzione precedente, i dati aggiunti a questi elementi saranno uguali o diversi, a seconda della natura delle modifiche apportate nel passaggio 5 di questa procedura.
Commenti
Se si desidera visualizzare le informazioni di rilevamento per questo esempio, è necessario annullare la distribuzione del set di regole pertinente (Loans Processing) e quindi eseguirla nuovamente utilizzando la Distribuzione guidata Motore regole di business.
In questo esempio viene illustrato come utilizzare regole di business per applicare criteri di business sotto forma di regole all'interno di un'orchestrazione. Viene inoltre illustrato come modificare i criteri e applicare in modo dinamico le modifiche apportate ai criteri all'interno dell'orchestrazione senza dover compilare o distribuire nuovamente la soluzione dell'orchestrazione.
Le richieste di prestito di input per questo esempio sono messaggi XML strutturati nel modo seguente:
Name
ID
Income
BasicSalary
OtherIncome
EmploymentType
TimeInMonths
PlaceOfResidence
TimeInMonths
CommitmentsStatus
IncomeStatus
EmploymentStatus
ResidencyStatus