Skrypty i zadania serwera

Z radością ogłaszamy znaczną poprawę możliwości dostosowywania i automatyzacji Vtiger dzięki modułowi Skrypty i zadania serwera.

Skrypty po stronie serwera to potężna funkcja umożliwiająca wykonywanie różnorodnych zadań. Dzięki tej możliwości możesz podejmować niestandardowe działania po zapisaniu rekordu lub po zatwierdzeniu/odrzuceniu. Można także skonfigurować niestandardowe zadania w tle, które będą wykonywane w zaplanowanych odstępach czasu.

Trzy lata temu uruchomiliśmy platformę aplikacji Vtiger (VTAP), platformę automatyzacji o niskim kodzie, aby pomóc firmom w dalszym dostosowywaniu instancji Vtiger CRM. Dzięki VTAP programiści mogą pisać kod po stronie klienta, który działa w przeglądarce użytkownika, aby umożliwić dostosowywanie po stronie klienta.

Istnieje jednak wiele scenariuszy, w których kod niestandardowy musi zostać uruchomiony po stronie serwera. 

Dzięki skryptom i zadaniom serwera klienci i partnerzy mogą bezpośrednio uruchamiać niestandardowy kod napisany w JavaScript na serwerach Vtiger. Ta funkcja toruje drogę nieograniczonej automatyzacji.

Oto kilka przykładów:

  • Wzbogacaj dane potencjalnych klientów, pobierając informacje z innych źródeł.
  • Okresowo importuj dane ze źródeł zewnętrznych do CRM.
  • Dostosuj dane w rekordach nadrzędnych do rekordów podrzędnych i odwrotnie (zaktualizuj saldo zaległych faktur w każdej organizacji).
  • Zintegruj niestandardową analizę opartą na sztucznej inteligencji.

Ta funkcja uruchamia te skrypty po stronie serwera na dwa sposoby:

  • Skrypty serwera: Są to skrypty po stronie serwera, które są wykonywane, gdy nastąpi określona akcja. Na przykład rekord został zapisany lub zatwierdzony/odrzucony.
  • Zadania serwera: Są to skrypty po stronie serwera, które wykonują się automatycznie w ustalonych odstępach czasu, np. co godzinę, codziennie, co tydzień itp.

Przypadek użycia

Pozwala zrozumieć, jak działają skrypty po stronie serwera, na prostym przykładzie aktualizacji kwot zaległych faktur w rekordzie Organizacji.

Wymaganie: W dowolnym momencie powinieneś mieć możliwość sprawdzenia kwot zaległych faktur dowolnej organizacji.

Rozwiązanie: Można to łatwo osiągnąć za pomocą skryptów serwera.

  • Za każdym razem, gdy faktura jest aktualizowana (zmiana kwoty lub statusu), uruchamiasz skrypt.
  • Korzystając z metody REST Vtigera, możesz połączyć wszystkie faktury z organizacją faktury w skrypcie.
  • Zsumuj saldo każdej faktury.
  • Ponownie, korzystając z metody REST Vtigera, zaktualizuj saldo w polu Organizacji.
  • Dzięki temu kwoty zaległych faktur będą zawsze widoczne w ewidencji organizacji.


  

async function main(record, user) {

    var orgId = record.account_id;

    try {

        var response = await vtap.macro.ws.api('GET', 'retrieve_related', {

            id: '3x'+orgId,

            relatedLabel: 'Invoice',

            relatedType: 'Invoice'

        });

        if(response && response.success) {

            var overdueAmount = 0;

            for(var index in response.result) {

                var invoice = response.result[index];

                var balance = parseFloat(invoice.balance);

                if(balance && !isNaN(balance)) {

                    overdueAmount = overdueAmount + balance;

                }

            }

            await vtap.macro.ws.revise({

                id: '3x'+orgId,

                cf_outstanding_invoice_amount: overdueAmount

            });

        }

    } catch(error) {

    }

}


  

async function main(record, user) {

    var orgId = record.account_id;

    try {

        var response = await vtap.macro.ws.api('GET', 'retrieve_related', {

            id: '3x'+orgId,

            relatedLabel: 'Invoice',

            relatedType: 'Invoice'

        });

        if(response && response.success) {

            var overdueAmount = 0;

            for(var index in response.result) {

                var invoice = response.result[index];

                var balance = parseFloat(invoice.balance);

                if(balance && !isNaN(balance)) {

                    overdueAmount = overdueAmount + balance;

                }

            }

            await vtap.macro.ws.revise({

                id: '3x'+orgId,

                cf_outstanding_invoice_amount: overdueAmount

            });

        }

    } catch(error) {

    }

}

Więcej informacji znajdziesz w naszej pomocy dokumentacja.

 
 
 

Już wkrótce — rozszerzenie aktualizacji

 
 

Rozszerzenie aktualizacji! 

Obecnie nie mamy możliwości aktualizacji rozszerzeń z Marketplace. 

W nadchodzącej wersji udostępnimy podstawową aktualizację, dzięki której użytkownik będzie mógł aktualizować rozszerzenia publikowane przez wydawcę dodatków. 

Wszelkie zmiany wprowadzone w rozszerzeniach, takich jak przepływy pracy, projektant API, projektant modułów itp., zostaną zaktualizowane w instancji klienta. 

 

Rozszerzenie aktualizacji! 

Obecnie nie mamy możliwości aktualizacji rozszerzeń z Marketplace. 

W nadchodzącej wersji udostępnimy podstawową aktualizację, dzięki której użytkownik będzie mógł aktualizować rozszerzenia publikowane przez wydawcę dodatków. 

Wszelkie zmiany wprowadzone w rozszerzeniach, takich jak przepływy pracy, projektant API, projektant modułów itp., zostaną zaktualizowane w instancji klienta. 

 
 

Zarejestruj się, aby otrzymywać najnowsze aktualizacje!