mercoledì 27 settembre 2023

D365FFO - Messaggio di errore: "Stopped (error): X++ Exception: The text associated with this work item cannot be found in the assignee’s language"


Eseguire i seguenti passaggi:

  1. Richiamare il Workflow;
  2. Andare alla versione attiva del flusso e controllare che la configurazione del flusso di lavoro disponga delle traduzioni nelle lingue utilizzate dagli utenti come lingue predefinite;
  3. Controllare che la lingua predefinita degli utenti del flusso sia la stessa in uso dal workflow.


D365FFO - Financial Tag

 

La feature Financial Tag, attivabile dalla Gestione funzionalità dà la possibilità di definire fino a 20 tag definiti dall’utente, da utilizzare nei giornali (Giornale generale e Giornale generale globale).

Caratteristiche ed utilizzo dei Finacial Tag:

  • I tag non fanno parte della struttura dei conti;
  • I valori dei tag non vengono convalidati durante l’immissione o la registrazione;
  • I valori dei tag predefiniti non vengono immessi dai dati anagrafici;
  • I valori dei tag non sono inclusi nei set di dimensioni, in D365 non è possibile generare un bilancio di verifica per visualizzare i saldi per i valori dei tag. I valori dei tag sono visualizzati come dettaglio delle transazioni;
  • I tag dovrebbero essere utilizzati per tenere traccia di valori non riutilizzabili (numeri di documi o numeri di riferimento);
  • Possono essere attivi o disattivati in qualsiasi momento;
  • Non possono essere eliminati;
  • I valori dei tag vengono utilizzati solo per l’analisi e l’elaborazione interna;
  • I tag vengono impostati a livello di persona giuridica, possono essere condivisi utilizzando la funzione Dati condivisi.

1 Set up


1.1 Impostazione delimitatore dei Financial Tag


In Contabilità generale à Impostazione contabilità generale à Parametri di contabilità generale, selezionare il Tab Tag finanziari e definire il Delimitatore segmento di tag finanziari. Il delimitore non deve essere utilizzato in nessun valore di tag immesso nelle transazioni e non può essere modificato dopo essere stato definito.



       1.2 Creazione Financial Tag

In Contabilità generale à Piano dei conti à Tag finanziari à Tag finanziari, selezionare Nuovo e creare un Tag finanziario.

  •          Inserire l’etichetta (non sono ammessi gli spazi ed i caratteri speciali);
  •         Nel campo Tipo valore selezionare Testo, Elenco o Elenco personalizzato;
  •         Se si è selezionato Elenco nel campo Tipo valore, selezionare l’origine valore nel campo           Utilizza valori da. Il campo contiene un elenco di entità da cui è possibile seleziona i valori       dei tag durante l’immissione della transazione.






Selezionare il Tab Attiva o disattiva tag per attivare il tag finanziario creato e poi selezionare OK.




       2 Inserimento Financial Tag nelle transazioni


Quando si immettono le registrazioni, è possibile definire i valori dei Tag nell’intestazione delle registrazioni. Tali valori verranno utilizza come valori predefiniti per le righe del giornale. Come per gli altri valori predefiniti nel giornale, verranno automaticamente inseriti nelle nuove righe aggiunte al giornale.




È possibile immettere il Tag finanziario direttamente sulla singola riga del giornale.




       2.1 Esempi di utilizzo

  • Stock: tenere traccia di tutte le transazioni per un’unità specifica tutta la vita di un bene;
  • Ratei fornitore: tenere traccia delle spese maturate per fornitore nella contabilità generare (inserendo l’ID fornitore per le spese provenienti dalle voci di competenza);
  • Lotto: tracciamento delle spese per lotti specifici, valore aggiunto, ecc. passando attraverso la contabilità generale;
  • Campagne di marketing: tenere traccia delle spese in base alla campagna di marketing.

martedì 26 settembre 2023

D365FFO - Creare campi calcolati su una vista

In questo post vediamo come creare campi calcolati su una vista.Come esempio creiamo una vista basata su VendTable che mostra come colonne l'account num e le dimensioni finzanziarie di default "Cost center" e "Business unit". Questa possibilità è stata introdotta con AX 2012 e potenziata con la 365. In Ax 2009 invece non è possibile aggiungere metodi alle viste.

1) Creare una nuova view che chiameremo LILVendTableDefaultDimension

2) Aggiungere come datasource VendTable

3) Aggiungere AccounNum come field

4) Aggiungere due nuovi campi di tipo string così:


        che chiameremo CostCenter e BU

5) Aggiungere due nuovi metodi alla vista, che chiameremo  getCostCenterDisplayValue e getBUDisplayValue,per recuperare il display value della dimensione CostCenter e Business unit

 public static str getCostCenterDisplayValue()  
   {  
     str VendTableDefaultDimension = SysComputedColumn::returnField(tableStr(LILVendTableDefaultDimension)  
                                     ,dataEntityDataSourceStr(LILVendTableDefaultDimension,VendTable)  
                                     ,fieldStr(VendTable, DefaultDimension));  
   
     str backingEntityType = int2Str(tableNum(DimAttributeOMCostCenter));  
   
   
     return strFmt(@"select  
                 top 1 DimensionAttributeValueSetItemView.DISPLAYVALUE  
             from  
                 DimensionAttributeValueSetItemView  
             join  
                 DIMENSIONATTRIBUTEVALUE  
             on  
                 DIMENSIONATTRIBUTEVALUE.RECID = DimensionAttributeValueSetItemView.DIMENSIONATTRIBUTEVALUE  
             join  
                 DIMENSIONATTRIBUTE  
             on  
                 DIMENSIONATTRIBUTE.RECID = DimensionAttributeValueSetItemView.DIMENSIONATTRIBUTE  
             where  
                 DIMENSIONATTRIBUTEVALUESET = %1  
             and   BACKINGENTITYTYPE     = %2",VendTableDefaultDimension  
                                 ,backingEntityType);  
   }  
 public static str getBUDisplayValue()  
   {  
     str VendTableDefaultDimension = SysComputedColumn::returnField(tableStr(LILVendTableDefaultDimension)  
                                     ,dataEntityDataSourceStr(LILVendTableDefaultDimension,VendTable)  
                                     ,fieldStr(VendTable, DefaultDimension));  
   
     str dimensionName = 'BusinessUnit';  
   
   
     return strFmt(@"select  
                 top 1 DimensionAttributeValueSetItemView.DISPLAYVALUE  
             from  
                 DimensionAttributeValueSetItemView  
             join  
                 DIMENSIONATTRIBUTEVALUE  
             on  
                 DIMENSIONATTRIBUTEVALUE.RECID = DimensionAttributeValueSetItemView.DIMENSIONATTRIBUTEVALUE  
             join  
                 DIMENSIONATTRIBUTE  
             on  
                 DIMENSIONATTRIBUTE.RECID = DimensionAttributeValueSetItemView.DIMENSIONATTRIBUTE  
             where  
                 DIMENSIONATTRIBUTEVALUESET = %1  
             and   DIMENSIONATTRIBUTE.NAME  = '%2'",VendTableDefaultDimension  
                                  ,dimensionName);  
   }  
N.B: se si usano le stringhe nei parametri della where ( per esempio dimensionattribute.name =...) vanno messi tra doppi apici ''

6) Compilare le proprietà ViewMethod dei due campi coi nomi dei metodi appena creati

7) Buildare e sincronizzare



In AX 2012 la firma del metodo deve contenere la parola "server":

 public static server str getBUDisplayValue()  
Inoltre la funzione 

dataEntityDataSourceStr

Non è disponibile è và sostituita con la stringa del nome del datasource nella view