Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I responsabili del magazzino hanno spesso bisogno di diversi gruppi di lavoro, priorità o assegnazioni delle porte di baia, a seconda del vettore, della scadenza della spedizione o del tipo di articoli da prelevare. Senza classificazione dinamica, ogni combinazione richiede un proprio modello di lavoro, che può portare a una configurazione di grandi dimensioni e complessa.
La classificazione dinamica del lavoro consente di usare formule Power Fx per determinare questi parametri di lavoro in fase di esecuzione anziché configurarli in modo statico in ogni modello di lavoro. Un singolo modello di lavoro combinato con una regola di classificazione può sostituire molti modelli statici, rendendo la configurazione più semplice da gestire e adattarsi ai requisiti aziendali in continua evoluzione.
La classificazione dinamica del lavoro offre due funzionalità principali:
- Classificazione alla creazione del lavoro: quando viene creato il lavoro di magazzino, il sistema valuta una formula di Power Fx per eseguire l'override del pool di lavoro, della priorità di lavoro, dei codici di direttiva della posizione e delle classi di lavoro sul lavoro generato. La formula può cercare i valori dall'intestazione di lavoro e dai record associati, tra cui il carico, la spedizione, il ciclo e l'appuntamento di trasporto.
- Riclassificazione dopo le modifiche al carico : se un carico cambia dopo la creazione del lavoro (ad esempio, il vettore viene riassegnato), il sistema può rivalutare la formula e aggiornare il lavoro associato. Il lavoro può essere rivalutato anche in base a una pianificazione se la formula dipende dalla data o dall'ora correnti.
Per iniziare a usare la classificazione dinamica del lavoro, è necessario configurare il modo in cui vengono caricati i trigger di riclassificazione, creare una o più regole di classificazione che contengono le formule Power Fx e associare ogni regola ai modelli di lavoro che devono usarla.
Prerequisiti
Per usare la funzionalità descritta in questo articolo, il sistema deve soddisfare i requisiti seguenti:
- È necessario eseguire Microsoft Dynamics 365 Sales versione 10.0.48 o successiva.
- La funzionalità denominata (Production Ready Preview) Deve essere attivata la classificazione dinamica del lavoro nella gestione delle funzionalità. A partire dalla versione 10.0.49 di Gestione Supply Chain, questa funzione è attivata di default.
Configurare la riclassificazione del lavoro all'aggiornamento del carico
Per controllare se le regole di classificazione dinamica del lavoro possono riclassificare il lavoro quando i carichi cambiano, configurare l'opzione Classificazione lavoro in caso di aggiornamento del carico. Il lavoro viene riclassificato solo dalle regole impostate in modo esplicito su Riclassificare il lavoro sull'aggiornamento del carico, quindi è possibile scegliere quali regole applicare quando un carico cambia. Il sistema classifica sempre il lavoro durante la creazione se una regola è associata al modello di lavoro, indipendentemente da questa impostazione.
Per configurare questa impostazione, seguire questa procedura:
- Vai a Gestione magazzino>Impostazioni>Parametri di gestione magazzino.
- Nella scheda Generale, aprire il Work FastTab.
- Impostare il campo Classificazione lavoro per l'aggiornamento del carico su uno dei valori seguenti:
- Disabilitato : non viene eseguita alcuna azione quando viene aggiornato un carico.
- Sincrono : tutte le operazioni associate a un carico aggiornato vengono riclassificate immediatamente dopo l'aggiornamento del carico.
Note
Quando si usa la riclassificazione sincrona, l'utente potrebbe riscontrare una breve attesa durante gli aggiornamenti del carico mentre il sistema elabora tutte le intestazioni di lavoro associate.
Creare regole di classificazione del lavoro dinamico
Le regole di classificazione definiscono le formule di Power Fx che determinano il modo in cui il lavoro deve essere classificato. Ogni regola specifica quali campi eseguire l'override e la logica per calcolare i nuovi valori.
Per creare una regola, seguire questa procedura:
Passare a Gestione magazzino>Configurare>regole di> lavoro.
Selezionare Nuovo per creare una regola.
Impostare le impostazioni seguenti nell'intestazione della nuova regola:
- Regola di classificazione dinamica del lavoro : immettere un nome per la regola.
- Descrizione : immettere una breve descrizione per la regola.
-
Ambito della regola – Specificare quando vengono eseguite le formule della regola durante la creazione del lavoro e a quali dati possono riferirsi. L'ambito determina se la classificazione viene applicata solo a livello di intestazione del lavoro o anche a livello di riga di lavoro iniziale. Scegliere uno dei valori seguenti:
- Work : la formula viene eseguita una sola volta, dopo la creazione dell'intestazione di lavoro. Usare questo ambito di applicazione quando la classificazione dipende solo dalle proprietà a livello di intestazione, ad esempio il vettore o i tempi di consegna.
- Lavoro e righe di lavoro iniziali : la formula viene eseguita due volte. Prima, quando è selezionata la linea di lavoro di selezione iniziale, il sistema valuta una formula di riga di lavoro iniziale separata e applica gli override a tale riga. Quindi, dopo aver raccolto tutte le righe di lavoro iniziali, il sistema applica la formula principale sull'intestazione del lavoro. Usare questo ambito quando la classificazione dipende da proprietà a livello di elemento, ad esempio l'area di selezione.
Nella scheda dettaglio Ricalcolo effettuare le impostazioni seguenti per controllare come e quando la regola viene rivalutata se un caricamento cambia dopo la creazione iniziale del lavoro:
- ID pianificazione di riclassificazione : questa impostazione è riservata per uso futuro e non ha alcun effetto nella versione corrente.
- Riclassificare il lavoro sull'aggiornamento del carico : impostare questa opzione su Sì per eseguire di nuovo la classificazione ogni volta che viene modificato un carico associato all'intestazione di lavoro. Questa impostazione garantisce che tutti gli aggiornamenti al carico si riflettano nella classificazione del lavoro. Questa impostazione si applica solo se il parametro Classificazione di lavoro per l'aggiornamento del carico è impostato per consentire la riclassificazione (vedere la sezione precedente).
Nella scheda dettaglio Formula Power Fx immettere una formula che restituisce un record con i campi di cui si vuole eseguire l'override. Per informazioni dettagliate sulla scrittura di formule, vedere le sezioni successive.
Se Ambito regola è impostato su Lavoro e righe di lavoro iniziali, la pagina include una scheda dettaglio Formula per la riga di lavoro iniziale. Questa formula viene eseguita quando la prima riga di lavoro viene assegnata a un nuovo record di lavoro. Per informazioni dettagliate sulla scrittura di formule, vedere le sezioni successive.
Tip
- Usare il pulsante Copia nel riquadro azioni per duplicare una regola esistente come punto di partenza per una nuova regola.
- Usare il pulsante Anteprima per testare una regola su un'intestazione di lavoro esistente e visualizzare i risultati senza apportare modifiche.
- Il pulsante Pianificazioni di riclassificazione del lavoro è riservato per uso futuro e non ha alcun effetto nella versione corrente.
Scrivere formule di classificazione del lavoro
Nella scheda dettaglio Formula Power Fx di ogni regola di classificazione immettere una formula che restituisce un record con uno o più dei campi seguenti.
Nella tabella seguente vengono descritti i campi che possono essere restituiti da una formula di classificazione del lavoro.
| Campo | Tipo | Description |
|---|---|---|
WorkPoolId |
Stringa | Sostituisce il pool di lavoro nel lavoro creato. |
DefaultWorkPriority |
Number | Modifica la priorità del lavoro creato. |
DirectiveCodeOverrides |
Record | Record in cui ogni nome di campo è un codice di direttiva location da sostituire e il valore è il nuovo codice di direttiva. Si applica a tutte le coppie pick/put. |
WorkClassOverrides |
Record | Record in cui ogni nome di campo è una classe di lavoro da sostituire e il valore è la nuova classe di lavoro. Si applica solo alla seconda e alle coppie pick/put successive. Per modificare la classe di lavoro della prima coppia pick/put, utilizzare invece la formula della linea di lavoro iniziale. |
Nell'esempio seguente viene illustrata una formula che restituisce tutti e quattro i campi.
{
WorkPoolId: "PoolA",
DefaultWorkPriority: 100,
DirectiveCodeOverrides: {
BAYDOOR: "BAYDOOR-C1",
STAGING: "STAGING-C1"
},
WorkClassOverrides: {
'Standard Class': "Express Class"
}
}
Importante
L'uso di Blank() in un campo (o la sua omissione) mantiene il valore originale del modello di lavoro. La restituzione di una stringa vuota ("") cancella attivamente il valore. Ad esempio, la restituzione Blank() di per WorkPoolId mantiene il pool di lavoro impostato nel modello di lavoro, mentre la restituzione "" rimuove completamente il pool di lavoro.
Oggetti dati disponibili per formule di lavoro
Nella tabella seguente sono elencati gli oggetti a cui è possibile fare riferimento in una formula di classificazione del lavoro.
| oggetto | Description |
|---|---|
workTable |
Intestazione di lavoro generata. |
workTable.Load |
La registrazione di carico associata all'intestazione di lavoro. |
workTable.Shipment |
Record di spedizione associato all'intestazione del lavoro. |
workTable.Wave |
Record di ciclo associato all'intestazione del lavoro. |
workTable.Appointment |
Primo appuntamento di gestione dei trasporti (TMS) associato al carico. |
Scrivere formule per la riga di lavoro iniziale
Se si imposta Ambito regola su Lavoro e righe di lavoro iniziali, inserire una formula aggiuntiva nella scheda dettaglio Formula riga di lavoro iniziale. Questa formula si applica quando la prima riga di lavoro di prelievo viene assegnata a un nuovo record di lavoro e può sostituire i campi seguenti.
| Campo | Tipo | Description |
|---|---|---|
WorkPoolId |
Stringa | Sostituisce il pool di lavoro nell'intestazione di lavoro creata. |
WorkClassId |
Stringa | Sostituisce la classe di lavoro delle linee di lavoro iniziali prelievo/stoccaggio. |
Oggetti dati disponibili per le formule della riga di lavoro iniziale
Nella tabella seguente sono elencati gli oggetti a cui è possibile fare riferimento in una formula iniziale della riga di lavoro.
| oggetto | Description |
|---|---|
workLine |
La linea di lavoro di prelievo iniziale generata. |
workLine.InventTable |
Record master dell'elemento selezionato. |
workLine.WHSInventTable |
Impostazioni dell'articolo di magazzino per l'articolo selezionato. |
workLine.Load |
Registro di carico associato alla riga di lavoro. |
workLine.LoadLine |
Riga di caricamento associata alla riga di prelievo iniziale. |
workLine.Shipment |
Il registro di spedizione associato alla linea di lavoro. |
Associare regole ai modelli di lavoro
Dopo aver creato una regola di classificazione, associarla al modello di lavoro che deve usarla. Durante la creazione del lavoro, il sistema valuta la formula della regola e applica le sostituzioni restituite al lavoro generato.
Passare a Gestione magazzino>Configurazione>Lavoro>Modelli di lavoro, selezionare un modello e impostare il campo Regola di classificazione dinamica del lavoro sulla regola che si vuole usare per tale modello.
Note
Quando si usa la classificazione dinamica del lavoro con un modello di lavoro, assicurarsi che le impostazioni di raggruppamento del modello siano allineate alla logica della formula. Ad esempio, se la formula classifica il lavoro in base alla zona, il modello di lavoro deve raggruppare la creazione di lavoro per zona in modo che ogni intestazione di lavoro contenga righe di una sola zona.
Examples
Gli esempi seguenti illustrano scenari comuni in cui la classificazione dinamica del lavoro può semplificare la configurazione.
Esempio 1: Impostare il pool di lavoro e la priorità per vettore
Un magazzino utilizza tre vettori che prelevano le spedizioni in momenti diversi durante il giorno. Il responsabile del magazzino vuole instradare il lavoro di ogni vettore a un pool di lavoro separato e assegnare priorità più alta al primo ritiro.
Senza classificazione dinamica, questa configurazione richiede tre modelli di lavoro. Ogni modello filtra in base a un codice gestore telefonico diverso, ognuno con le proprie impostazioni di pool di lavoro e priorità.
Con la classificazione dinamica, un singolo modello di lavoro e una regola gestiscono tutti e tre i vettori.
Switch(workTable.Load.CarrierCode,
"Carrier1", {WorkPoolId: "Carrier1", DefaultWorkPriority: 100},
"Carrier2", {WorkPoolId: "Carrier2", DefaultWorkPriority: 50},
"Carrier3", {WorkPoolId: "Carrier3", DefaultWorkPriority: 10}
)
Se successivamente si riassegna il carico a un gestore telefonico diverso, il sistema può riclassificare automaticamente il lavoro quando viene attivata la riclassificazione dell'aggiornamento del carico.
Esempio 2: stoccaggio diretto verso portelli specifici per vettori
Basandosi sull'esempio 1, il gestore del magazzino vuole anche inserire linee in uscita dirette a porte di baia diverse a seconda del vettore. Con la configurazione statica, ogni modello di lavoro richiede un codice direttiva di percorso diverso.
Con la classificazione dinamica, è possibile aggiungere sostituzioni del codice di direttiva alla stessa formula.
Switch(workTable.Load.CarrierCode,
"Carrier1", {
WorkPoolId: "Carrier1",
DefaultWorkPriority: 100,
DirectiveCodeOverrides: {BAYDOOR: "BAYDOOR-C1"}
},
"Carrier2", {
WorkPoolId: "Carrier2",
DefaultWorkPriority: 50,
DirectiveCodeOverrides: {BAYDOOR: "BAYDOOR-C2"}
},
"Carrier3", {
WorkPoolId: "Carrier3",
DefaultWorkPriority: 10,
DirectiveCodeOverrides: {BAYDOOR: "BAYDOOR-C3"}
}
)
Esempio 3: Classificare in ordine di priorità il lavoro in base alla scadenza della spedizione
Invece di classificare in base al vettore, questo esempio assegna priorità al lavoro basato su quanto è vicina la spedizione all'orario di spedizione programmato. I carichi con scadenze precedenti ricevono priorità più alta, garantendo ai lavoratori di scegliere prima gli ordini più sensibili al tempo.
La formula seguente converte il tempo di spedizione pianificato in una priorità numerica. Una spedizione pianificata per le 9:00 diventa prioritaria 900, mentre una spedizione delle 15:00 diventa prioritaria 1500.
{
DefaultWorkPriority:
If(Not(IsBlank(workTable.Load.LoadSchedShipUTCDateTime)),
If(IsToday(workTable.Load.LoadSchedShipUTCDateTime),
Hour(workTable.Load.LoadSchedShipUTCDateTime) * 100
+ Minute(workTable.Load.LoadSchedShipUTCDateTime),
3000),
Blank())
}
La formula assegna una priorità di 3000 ai carichi pianificati per un giorno futuro (oltre la priorità massima basata sul tempo di 2359) e restituisce Blank() per i carichi senza data pianificata, che mantiene la priorità predefinita del modello di lavoro.
Un approccio alternativo calcola la priorità in base al numero di minuti rimanenti fino alla scadenza della spedizione.
{
DefaultWorkPriority:
If(Not(IsBlank(workTable.Load.LoadSchedShipUTCDateTime)),
If(IsToday(workTable.Load.LoadSchedShipUTCDateTime),
Max(0, DateDiff(Now(), workTable.Load.LoadSchedShipUTCDateTime,
TimeUnit.Minutes)),
24 * 60),
Blank())
}
Importante
L'approccio del tempo rimanente richiede che il processo batch di riclassificazione sia eseguito in base a una pianificazione ricorrente, ad esempio, ogni ora, per mantenere le priorità aggiornate. A seconda del numero di intestazioni di lavoro aperte, questo requisito può aggiungere carico al sistema. L'approccio di ora del giorno (prima formula) è più efficiente perché il lavoro richiede solo la riclassificazione quando cambia l'ora di spedizione pianificata del carico.
Esempio 4: Classificare il lavoro in base alla zona di selezione
In questo esempio viene assegnata una classe di lavoro diversa alla coppia di selezione/inserimento iniziale in base alla zona in cui vengono selezionati gli elementi. Ad esempio, i prelievi da una zona di congelamento sono riservati ai lavoratori con idonea attrezzatura per il freddo.
Per usare questo approccio, impostare Ambito regola su Lavoro e linee di lavoro iniziali e configurare il modello di lavoro per raggruppare il lavoro in base alla zona. Questa configurazione garantisce che ogni intestazione di lavoro contenga righe provenienti da una sola zona.
La formula iniziale della riga di lavoro concatena un prefisso con l'ID zona per creare una classe di lavoro specifica della zona.
{
WorkClassId: Concatenate("S-", workLine.ZoneId)
}
In alternativa, è possibile impostare il pool di lavoro anziché la classe di lavoro.
{
WorkPoolId: Concatenate("S-", workLine.ZoneId)
}