Domanda

Sto sviluppando un driver Novell Identity Manager per Salesforce.com, e sto cercando di capire la piattaforma Salesforce.com meglio.

ho avuto davvero un buon successo fino ad oggi. Posso leggere praticamente classi di oggetti arbitrari di SFDC, e creare oggetti eDirectory per loro, e cosa no. Questo è tutto fatto e lavorare bene. (Editore Canale). Una volta ho avuto eventi Query mappati fuori, quasi tutto ciò che ha iniziato a lavorare nel Canale di Publisher.

Ora sto lavorando su l'invio di eventi torna a SFDC (canale Subscriber) quando i cambiamenti si verificano in eDirectory.

Sto usando la funzione upsert () nella API SOAP, e con Novell Identity Manager, che, fondamentalmente, costruisco il doc SOAP, e posso vedere i risultati come si costruisce. (Si può fare in XSLT oppure è possibile utilizzare i vari gettoni permesso di costruire il documento in DirXML Script. Sto usando DirXML Scrittura che ha lavorato bene finora.).

Il risultato di quel commento è che posso costruire il documento SOAP, vedere, per essere sicuro di farlo bene. Che di solito è diverso da quello del Java / C ++ approccio che il codice di esempio fornisce di solito. Molto più visiva in questo modo.

Ci sono diverse cose su upsert () che non ho del tutto capito. Io so come un valore vuoto, dovrei ottenere quel tipo di evento. All'interno il nodo <urn:sObjects>, aggiungere un nodo come (supponendo che si ottiene gli spazi dei nomi dichiarati già):

<urn1:fieldsToNull>FieldName</urn1:fieldsToNull>

So come aggiungere un valore (AttrValue) all'attributo (FieldName), aggiungere un nodo come:

<FieldName>AttrValue</FieldName>

Tutto questo funziona ed è piuttosto semplice.

La domanda che ho è, può un valore in SFDC essere più valori? In eDirectory, un attributo a più valore in corso di modifica, può avvenire in due modi:

  • Tutti i valori possono essere rimossi, e il nuovo set ri-aggiunto.
  • Il singolo valore rimossa può essere inviato come quel tipo di evento (remove-valore) o molti valori possono essere rimossi in un'unica operazione.

Guardando SFDC, ho sempre e solo visto attributi Multi-picklist che sembrano essere memorizzati in una singola voce: o; delimitato. C'è un altro tipo di attributo più prezioso gestito in modo diverso in SFDC? E se sì, come sarebbe uno manipolarlo tramite l'API SOAP?

Devo ancora decidere se voglio mappare quei multi-picklists ad una singola stringa, o un attributo più prezioso di stringhe. Primo modo è più facile, secondo modo è più utile ... Hmmm ... Scelte ...

Alcune referenze:

  • Sono stato utilizzando la pagina messaggi SOAP esempio per capire che cosa la documentazione dovrebbe simile.
  • Apex Explorer è uno strumento per la navigazione a calci il database e testare query. Molto simile dbvisualizer fa per JDBC collegato database. Questo sarebbe stato molto più difficile senza di essa!
  • SoapUI è richiesta anche, e un bel strumento!
È stato utile?

Soluzione

Per quanto ne so non c'è campo multi-valore diverso da multi-selezionare elenchi di selezione (e mappano a stringa e virgola-separato). Generalmente piattaforma che incoraggia a creare un corretto rapporto con un altro (possibilmente nuova, personalizzata) tavolo, se hai bisogno di avere più valori associati ai dati.

Solo un'altra cosa "inusuale" mi viene in mente è come il campo ownerid su determinati oggetti (Caso, Piombo, forse qualcos'altro) può essere utilizzato per punto per l'utente o registrare coda. Sembra strano quando si è abituati a relazioni di chiave esterna da database tradizionali. Ma questo non è identico a quello che stai chiedendo come non ci sarà un solo valore alla volta.

Naturalmente si potrebbe essere sorpresi a volte con valori vedrete nel database in base al paese dell'utente visualizzazione (roba come profilo per amministratori di sistema diventare Systeembeheerder in olandese). Ma questo sarà ancora un valore singolo, tradotto al volo poco prima che i risultati della query vengono inviati a te.

Quando ho dovuto eseguire l'integrazione con SOAP SFDC, ho sempre usato i file WSDL e il più delle volte andava bene con il codice Java generato fuori di essi con Apache Axis. Hand-lavorazione il messaggio SOAP te pare ... wow, hardcore un po '. Sei sicuro che si preferisce la visualizzazione di XML sulla creazione di classi, eccezioni e tutta questa roba pronta per l'uso con uno dei tanti out-of-the-box integrazione metodi? Se faranno mai cambiare il WSDL ho bisogno solo di rigenerare le classi da esso; considerando che le variazioni tua libreria creazione messaggio SOAP potrebbe essere dolorosa ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top