Pliki cookie pomagają nam udostępniać nasze usługi. Korzystając z tych usług, zgadzasz się na użycie plików cookie. Więcej informacji
CRM – Definiowanie listy adresowej za pomocą API

2010-09-23

W systemie Sz@rk CRM możemy zdefiniować różne listy adresowe wybierając adresatów z naszej bazy kontrahentów. Pozycja zawiera identyfikator kontrahenta oraz adres e-mail. Listę możemy definiować wg trzech różnych sposobów:

  • Kontrahentów możemy dodawać pojedynczo szukając w bazie za pomocą standardowego kreatora wyszukiwania
  • Importujemy adresy z innej listy adresowej (całą listę lub częściowo)
  • Importujemy adresy ze Schowka Sz@rk, który wcześniej uzupełniamy pozycjami z listy kontrahentów za pomocą metody „Przeciągnij-upuść”.

Pierwsza i trzecia metoda jest bardzo wolna ponieważ pracujemy z pojedynczymi rekordami. Metoda druga jest szybsza, ale jak często będziemy potrzebować kopie już istniejących list?

Załóżmy że chcemy wysłać seryjną wiadomość e-mail do wszystkich kontrahentów, którzy nam zalegają z płatnościami na określony dzień. Standardowa metoda będzie polegać na wykonaniu wydruku z rozrachunków dla należności, następnie pozycja po pozycji dodawanie z wydruku kolejnych rekordów metodą wyszukiwania kontrahentów za pomocą kreatora, lub wypełnianiem koszyka po uprzednim zlokalizowaniu konkretnego kontrahenta odczytanego z listy (wydruku). Pracę tą wykonamy w kilka minut dla kilku lub kilkunastu kontrahentów, ale co w sytuacji gdy nasza lista zawiera kilkaset lub kilka tysięcy pozycji.?

W rzeczywistych (użytkowych) warunkach spotykamy się z tak dużą różnorodnością warunków, wg których chcielibyśmy zakwalifikować kontrahentów do poszczególnych list, że typowe rozwiązania stają się nieskuteczne.

Aby ułatwić i przyspieszyć definiowanie list wg dowolnych kryteriów wykorzystamy funkcje Sz@rk SQL i Sz@rk API.

Pierwszy krok to zbudowanie zapytania SQL, które zwróci nam pola z tabeli kontrahenci: id, grupa, kod, skrot, e_mail. Możemy tutaj dowolnie konstruować zapytanie w połączeniu z pozostałymi tabelami Sz@rk za pomocą złączeń. Dzięki temu otrzymamy dowolną żądaną przez nas listę kontrahentów.

W drugim kroku wykorzystamy Sz@rk API do wypełnienia Schowka Sz@rk pobranymi rekordami za pomocą naszego zapytania SQL.

Poniżej pełny kod C#, który można w całości wykorzystać, pamiętając tylko o zmianie pierwszego parametru w konstruktorze GetTableFromRepository. Podajemy tutaj własny GUID odczytany z okna dialogowego naszego SQL. Dokładne przykłady były w poprzednich naszych wpisach na temat Sz@rk API http://tgsoft.pl/Blog.aspx?tag=API

namespace Szark
{
    using System;
    using System.Data;
    using System.Windows.Forms;
 
    public partial class Form1 : System.Windows.Forms.Form
    {
 
        public Form1(object sender)
        {
            this.InitializeComponent();
            button1.Click += button1_click;
        }
 
        public void Main()
        {
            this.ShowDialog();
        }
 
        private void button1_click(object sender, EventArgs e)
        {
            TGSoft.API.Schowek.Empty();
            DataTable table = TGSoft.API.SQL.GetTableFromRepository(
                "5bff76c9-444a-4547-a6e1-2f531151f023", null, null);
            foreach (DataRow dr in table.Rows)
            {
                TGSoft.Repository.SchowekRecord sr =
                    new TGSoft.Repository.SchowekRecord(
                        dr["id"], "kontrahenci", "e_mail", dr["e_mail"]);
                TGSoft.API.Schowek.AppendRecord(sr);
            }
            MessageBox.Show(String.Format("Dodano rekordów: {0} ",
                table.Rows.Count));
            TGSoft.API.Schowek.Show();
        }
    }
}

Mając dane w schowku Sz@rk, pozostaje nam tylko wykonać opcję dodawania kontrahentów do listy adresowej korzystając ze standardowego kreatora, wskazując źródło danych „Schowek Sz@rk

Teraz w krótkim czasie jesteśmy w stanie utworzyć wiele różnych list adresowych do naszych „Kampanii Reklamowych”, „Biuletynów Informacyjnych” lub standardowej poczty. Za pomocą FastReport.NET możemy wykonać seryjny wydruk dla kontrahentów z takiej listy.

W załączonym przykładzie widzimy, że Sz@rk API daje nam dostęp do przestrzeni nazw System.Data i wykonywanie operacji na danych. W naszym przykładzie wykorzystaliśmy klasy DataTable oraz DataRow.