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.