Se arrivi da Carbone o Docmosis
I tuoi modelli Word mantengono la loro impaginazione; cambiano solo i tag. Una chiamata riscrive i tag che capisce, nomina uno per uno quelli che non capisce, e non conserva nulla. I tuoi dati restano lo stesso JSON di oggi.
Una chiamata per modello
POST /api/v1/compose/templates/convert
Authorization: Bearer lpdc_...
{
"from": "carbone",
"templateType": "docx",
"fileName": "invoice.docx",
"fileBase64": "UEsDBBQABgAIAAAAIQ..."
}
Il campo output.compose.conversion della risposta contiene il nuovo file
(fileBase64, fileName), ogni tag convertito (converted,
da cosa a cosa, con una note dove qualcosa è stato eliminato), ogni tag lasciato
com'era e il perché (unconverted), e le diagnostics che
Valida darebbe sul nuovo file. Nulla viene conservato, generato o
addebitato. Quando il report ti convince, carica il file come qualsiasi altro
(Gestire i modelli da uno script) e fai una
chiamata di test con i dati che il tuo sistema invia oggi.
from vale carbone o docmosis; templateType
vale docx o html. La chiave deve avere il permesso
documents:templates (la chiave iniziale non ce l'ha: Crea una chiave completa
nella pagina Chiavi API). I modelli Word vengono letti per intero anche dove Word ha diviso un
tag tra due porzioni di formattazione.
Cosa diventa cosa: Carbone
| Carbone | DoConure | Nota |
|---|---|---|
{d.customer.name} | {{ customer.name }} | Il d. sparisce: i dati sono la radice. |
Una riga di tabella con {d.items[i].qty}, e la riga successiva con {d.items[i+1]...} | La riga tra {%tr for row in items %} e {%tr endfor %}; ogni valore è {{ row.qty }} | In Carbone la riga [i+1] segnava solo la fine dell'elenco, e viene rimossa. |
:upperCase, :lowerCase, :ucFirst, :ucWords | | upper, | lower, | capitalize, | title | |
:formatD(...), :formatN(...), :formatC(...) e i formattatori aritmetici | Il valore semplice | Tolti ed elencati: manda il valore già formattato, come vuoi che sia stampato. |
:ifEQ(...), :show(...) e le altre condizioni; {c.}, {#alias}, {t()} | Lasciati come sono | Elencati sotto unconverted: riscrivili come parti condizionali, o metti il valore nei dati. |
Cosa diventa cosa: Docmosis
| Docmosis | DoConure | Nota |
|---|---|---|
<<customer.name>> | {{ customer.name }} | Un :format dopo il nome viene tolto ed elencato. |
<<rr_items>> ... <<er_items>> in una riga di tabella | La riga tra {%tr for row in items %} e {%tr endfor %} | Un campo dentro la riga legge da ciascun elemento (row.); se è un campo fuori dall'elenco, togli row.. |
<<rs_items>> e <<es_items>>, ciascuno da solo sulla sua riga | {%p for row in items %} ... {%p endfor %} | |
<<cs_notes>> ... <<es_notes>> | {% if notes %} ... {% endif %} | Su una riga o su righe a sé. |
Espressioni (<<{...}>>), $variabili | Lasciate come sono | Elencate sotto unconverted: calcola il valore nei dati. |
Se carichi un modello così com'è
Il caricamento riesce e il documento esce, con i tag dell'altro prodotto stampati come testo. Il caricamento e Validate avvisano entrambi quando un modello contiene tag di Carbone o Docmosis, con il numero trovato.
Con un agente AI
Un agente può fare tutto il passaggio: dagli la cartella dei modelli e questa istruzione, e leggi i rapporti che riporta prima di caricare qualunque cosa.
Read https://app.doconure.com/llms-full.txt, then the guide page
https://app.doconure.com/docs/migrate-templates.
For each .docx in ./templates: call POST /api/v1/compose/templates/convert
(from = carbone or docmosis), write the result next to it as *-doconure.docx,
and write a report listing every "unconverted" tag and every "note".
Do not upload anything. Read the key from DOCONURE_API_KEY.
La sintassi: Scrivere un modello, Elenchi e righe ripetute, Parti condizionali. Spostare un'integrazione con un agente: Come faccio scrivere l'integrazione a un agente AI?