Questi due post sono stati di grande aiuto:
Questo mostra come ricavare il codice dell'etichetta cercando in base al testo:
https://community.dynamics.com/365/financeandoperations/f/dynamics-365-for-finance-and-operations-forum/272482/how-to-get-label-id-from-a-label-text/810927
Questo post invece indica come ricavare tutti i fileID delle etichette:
https://community.dynamics.com/365/financeandoperations/f/dynamics-365-for-finance-and-operations-forum/243050/enumerate-label-prefix-for-label-search-functionality
Questo è il job preso dal primo link e modificato:
public static void main(Args _args)
{
int j;
//parametri - start
str TextToFind = "Data fattura"; //stringa da cercare
LanguageId languageId = "it"; //lingua
boolean matchExactly = true; //trova parola esatta oppure no
str LabelFile = "SYS"; //Label file Id
//parametri - end
container result;
Map txtToLabelIdMap = new Map(Types::String, Types::String);
ClrObject labels = new ClrObject("System.Collections.Generic.Dictionary`2[System.String,System.String]");
System.Globalization.CultureInfo cultInfo = System.Globalization.CultureInfo::CreateSpecificCulture(languageId);
labels = Microsoft.Dynamics.Ax.Xpp.LabelHelper::GetAllLabels(LabelFile, cultInfo);
if(labels)
{
ClrObject labelsEnumerator = labels.GetEnumerator();
while(labelsEnumerator.MoveNext())
{
ClrObject keyValuePair = labelsEnumerator.get_Current();
var currentlabelId = keyValuePair.get_Key();
var currentTxt = keyValuePair.get_Value();
if(matchExactly)
{
if(currentTxt == TextToFind)
{
if (!Microsoft.Dynamics.Ax.Xpp.LabelHelper::IsLegacyLabelId(currentlabelId))
{
currentlabelId = strFmt("%1%2:%3","@",LabelFile,currentlabelId);
}
result += strFmt("%1,%2 -> %3",LabelFile,currentlabelId,currentTxt);
}
}
else
{
if(strScan(currentTxt, TextToFind, 0, strLen(currentTxt)))
{
if (!Microsoft.Dynamics.Ax.Xpp.LabelHelper::IsLegacyLabelId(currentlabelId))
{
currentlabelId = strFmt("%1%2:%3","@",LabelFile,currentlabelId);
}
result += strFmt("%1,%2 -> %3",LabelFile,currentlabelId,currentTxt);
}
}
}
}
//container dei risultati
for(j = 1;j<=conLen(result);j++)
{
info(conPeek(result,j));
}
}
Lanciando il job otterremo il seguente risultato:
Nessun commento:
Posta un commento