SPWorkflowTaskProperties.ExtendedProperties non sta popolando i campi nel mio compito
-
03-07-2019 - |
Domanda
Sto tentando di passare le informazioni da un'attività creata all'interno di un flusso di lavoro al modulo attività corrispondente. Prima dell'attività CreateTask, creo un SPWorkflowTaskProperties e lo riempio con le solite informazioni (titolo, assegnato a, ecc.). Aggiungo anche alcuni elementi alla proprietà ExtendedProperties. Tuttavia, tali proprietà personalizzate non vengono mai incluse nell'attività.
Ho provato a impostare la chiave di proprietà su:
- la Guida di uno dei contenuti del mio compito campi del tipo;
- il nome interno di uno dei miei "tipi di contenuto" campi;
- un nome non correlato (in spera di ottenere le informazioni nel proprietà dell'attività anziché la sua campi).
Niente funziona. L'attività, una volta creata, contiene solo i valori di campo predefiniti che ho impostato. Nessuno dei valori aggiunti esplicitamente alle proprietà estese viene visualizzato.
La sequenza (semplificata) delle mie attività è la seguente:
- PrepareTask. Questa è un'usanza attività che contiene il file SPWorkflowTaskProperties
- CreateTask. Le proprietà dell'attività sono associate a quella dell'attività PrepareTask.
- OnTaskCreated. Le proprietà dell'attività sono associate a quella dell'attività PrepareTask.
- While (attività non completata)
- OnTaskChanged
Sto utilizzando WSS 3.0 SP1 e un modulo attività ASPX (NON InfoPath).
Soluzione
Non so ancora perché la mia soluzione originale non abbia funzionato. Ma ho trovato una soluzione alternativa. La mia sequenza di attività è ora:
- CreateTask
- OnTaskCreated
- CopyTaskItems. Questa è un'usanza attività che mette i valori nel mio campi dell'attività personalizzata, quindi aggiornamenti l'attività.
- While (attività non completata)
- OnTaskChanged
Quindi devo creare l'attività, quindi inserire immediatamente i valori e aggiornarla.
Spero che questo possa aiutare qualche futuro lettore di questa domanda.
Altri suggerimenti
È necessario utilizzare un documento ItemMetadata.xml come origine dati secondaria che contiene la definizione dei campi che si desidera passare al modulo attività. Qualcosa del tipo:
<z:row xmlns:z="#RowsetSchema"
ows_Instructions=""
ows_Body=""
ows_Comments=""
ows_ApprovalStatus=""
/>
Il nome del file è importante tra l'altro.
Nota il ows_
(poiché utilizzava i servizi web tutti i campi nell'elenco saranno preceduti da ows
.)
Quindi, nel modulo di infopath, imposta il valore predefinito di ciascun controllo in cui desideri visualizzare queste informazioni. Premi il pulsante fx e inserisci un campo o un gruppo dall'origine dati secondaria.
Una buona risorsa: http: // weblog .vb-tech.com / nick / archive / 2007/02/25 / 2207.aspx