Az ügyfelek adatainak nyomon követése a fiókokban/kapcsolattartókban nagyon fontos az ügyfélkapcsolat-kezelésben (CRM). A dátum alapján az összes folyamat, például a vásárlás, az ajánlattétel és a szervizelés megtörténik. Nézzük meg, hogyan hozhat létre dátumot karakterláncból a Salesforce-ban, és hogyan alakíthatja át a dátumot karakterláncsá. Ennek az oktatóanyagnak a részeként láthatjuk a formázott dátumon alkalmazott módszereket is, például napok, évek, hónapok stb. hozzáadását, példákkal.
Apex dátum osztály
A dátum osztály támogatja az összes primitív dátummetódust. A „Rendszer” névteret használja. Ebből az osztályból a valueOf() metódus segítségével konvertálhatjuk a karakterláncot dátumformátummá. A dátum formázása után néhány módszert alkalmazunk a napok, hónapok, évek stb. hozzáadására a formázott dátumhoz, néhány módszerrel, amelyek szintén elérhetők ebben a dátumosztályban.
Először is látni fogjuk, hogyan lehet dátumra konvertálni a karakterláncot a valueOf() metódussal a Salesforce Apexben.
Date.valueOf()
Az Apexben található valueOf() a „Date” osztályban érhető el, amely a karakterláncot argumentumként veszi fel, amely a megadott karakterláncot dátumformátummá alakítja. A bemeneti karakterlánc (paraméter) három attribútumot tartalmaz – év, hónap és nap. Ezt a hármat egyesítik/összefűzik és átadják a metódusnak.
Szintaxis: ValueOf()
Mint már említettük, deklarálnunk kell a „Date” osztály egy változóját, és át kell adnunk neki a karakterláncot.
Date_date_variable= date.valueOf(karakterlánc_dátum_formátuma);
Példa:
1. lépés:
Legyen egy zsinór, amely az „Év-Hónap-nap”-ot tartalmazza.
// Év, hónap és nap deklarálása egyenkéntKarakterlánc éve = '2023';
Karakterlánc hónap = '4';
String Day = '5';
// Összefűzi mindegyiket egy karakterláncba
String string_type = év + '-' + hónap + '-' + nap;
system.debug(string_type);
Kimenet:
2. lépés:
Most alakítsa át az előző „Date” karakterláncot „Date”-re a valueOf() metódus segítségével az Apex „Date” osztályból.
// Karakterlánc-Dátum konvertálása dátummáÁtalakítás dátuma = date.valueOf(karakterlánc_típusa);
system.debug(konvertált_dátum);
Kimenet:
Láthatjuk, hogy a „Date” formátumra konvertálás után automatikusan visszaadja a dátumot DateTime formátumban. Nem veszi figyelembe az időt (óra:perc:másodperc), még akkor sem, ha átadja ezeket a valueOf() metódusnak. A visszaadott formátum: ÉÉÉÉ-HH-NN ÓÓ:PP:SS.
Konvertálja a dátumot karakterláncra
A „Dátum” kétféleképpen konvertálható „karakterláncra”. Az Apex által támogatott egyik módszer a format() metódus használata. A másik módszer a „Dátum” attribútumok (év, hónap és nap) manuális kinyerése és karakterláncba fűzése. Nézzük őket egyenként.
1. Formátum()
A format() metódus elérhető az Apex „Date” osztályában, amely a „Date”-t „H/N/YYYY” formátumú karakterláncsá alakítja. A megadott formátumot paraméterként is átadhatjuk ennek a metódusnak. A megadott formátum az alapértelmezett formátum.
Szintaxis:
input_date.format(“formátum_típusa”)Példa:
Tekintsük az előző példát, és konvertáljuk vissza a „Dátum”-ot „String”-re a format() metódus segítségével. Nem biztosítunk konkrét formátumot a format() metódushoz.
// Év, hónap és nap deklarálása egyenkéntKarakterlánc éve = '2023';
Karakterlánc hónap = '4';
String Day = '5';
// Összefűzi mindegyiket egy karakterláncba
String string_type = év + '-' + hónap + '-' + nap;
// Karakterlánc-Dátum konvertálása dátummá
Átalakítás dátuma = date.valueOf(karakterlánc_típusa);
system.debug(konvertált_dátum);
// formátum()
system.debug(converted_date.format());
Kimenet:
2. A Dátumosztály módszer használata
Ebben a forgatókönyvben külön kinyerjük az évet, a hónapot és a napot a „Date”-ből az Apex „Date” osztályban elérhető metódusok segítségével. Ezután összefűzzük ezt a hármat, hogy a „Dátum” értéket „String” formátumban adja vissza.
- nap() – Ezzel a módszerrel kinyerhető a dátum a „Dátum”-ból. A dátumot meghatározó egész számot adja vissza.
- hónap() – Ezzel a módszerrel lehet kivonni a hónapot a „Dátumból”. A hónap számát meghatározó egész számot adja vissza. Január 1-re, február 2-ra hivatkozhatunk… december 12-én.
- év() – Ezzel a módszerrel kinyerjük az évet a „Dátumból”. Négy számjegyű formátumban adja vissza az évet.
Szintaxis:
bemeneti_dátum.év() + '-' + bemeneti_dátum.hónap() + '-' + bemeneti_dátum.nap()Példa:
Konvertálja vissza a „Dátum”-ot „String”-re az „ÉÉÉÉ-H-N” formátumban.
// Év, hónap és nap deklarálása egyenkéntKarakterlánc éve = '2023';
Karakterlánc hónap = '4';
String Day = '5';
// Összefűzi mindegyiket egy karakterláncba
String string_type = év + '-' + hónap + '-' + nap;
// Karakterlánc-Dátum konvertálása dátummá
Átalakítás dátuma = date.valueOf(karakterlánc_típusa);
system.debug(konvertált_dátum);
// Dátum konvertálása karakterláncra
system.debug(konvertált_dátum.év() + '-' + konvertált_dátum.hónap() + '-' + konvertált_dátum.nap());
Kimenet:
Gyakorlati példák:
Nézzük meg, hogyan frissíthető a „Dátum”, például napok, évek és hónapok hozzáadása a Salesforce-objektumok meglévő dátumához. Mindhárom módszer az „n” egész számot veszi argumentumként.
1. addDays()
A napok hozzáadásához a meglévő dátumhoz az Apex támogatja az addDays() metódust, amely elérhető a „Date” osztályban.
2. add Months()
Ha hónapokat szeretne hozzáadni a meglévő dátumhoz, az Apex támogatja az addMonths() metódust, amely elérhető a „Date” osztályban.
3. addYears()
Ha éveket szeretne hozzáadni a meglévő dátumhoz, az Apex támogatja az addYears() metódust, amely elérhető a „Date” osztályban.
Szintaxis:
Nézzük meg ennek a három módszernek a szintaxisát. Itt az „n” jelenti az egész értéket.
- input_Date.addDays(n)
- input_Date.addMonths(n)
- input_Date.addYears(n)
Mielőtt rátérne a példára, vegye figyelembe a következőket:
- Jelentkezzen be a Salesforce-ba, lépjen az „Alkalmazásindítóba”, és keresse meg a „Kampány” kifejezést a lapon. Ide beillesztjük a „Kampány neve” és a „Befejezés dátuma”.
- Válassza a „Kampányok” lehetőséget, majd kattintson az „Új” gombra.
- Megjelenik egy előugró ablak, amely beilleszti az adatokat a kampányba. Adja hozzá a „Linux tippbejegyzések” elemet a „Kampány neve” alatt, és állítsa be a „Befejezés dátumát” 2023.04.05. Ezután kattintson a „Mentés” gombra.
Készen állunk a lemezzel. (Típus – Konferencia és Állapot – Tervezett automatikusan jön. Hagyja). Nyissuk meg a névtelen ablakot a fejlesztői konzolban.
1. példa:
Használjuk az addDays() metódust, hogy 10 napot adjunk a „Campaign” objektum meglévő „Befejező dátumához”.
- Ehhez először a SOQL lekérdezést kell használnunk, hogy megkapjuk a rekordot a „Campaign” objektumtól, és tároljuk ezt a rekordot egy „List” objektumban.
- Ezután a „for” ciklust használjuk a lista iterálásához, és az addDays() metódussal 10 napot adunk a „Befejező dátumhoz”.
- Végül az „update DML” utasítást használjuk a „Campaign” objektum „Befejező dátumának” frissítésére.
List
// Adjon hozzá 10 napot az EndDate-hez az addDays() metódussal
for(i kampány: lekérdezés1){
i.EndDate = i.EndDate.addDays(10);
}
// Használja a DML frissítését az EndDate frissítéséhez
query1 frissítése;
system.debug(query1);
Kimenet:
Az előző „Befejező dátum” április 5. 10 nap hozzáadásával a „Befejezés dátuma” most április 15.
A „Kampány” fülön is ellenőrizhetjük. Lépjen vissza, és frissítse az oldalt. Láthatja, hogy a „Befejezés dátuma” frissült.
2. példa:
Használjuk az addMonths() metódust, hogy 3 hónapot adjunk a meglévő „Befejező dátumhoz”.
// Visszaküldi a nevet és a végdátumot a kampányból SOQL használatávalList
system.debug('Aktuális: '+query1);
// Adjon hozzá 3 hónapot az EndDate-hez az addMonths() metódussal
for(i kampány: lekérdezés1){
i.EndDate = i.EndDate.addMonths(3);
}
// Használja a DML frissítését az EndDate frissítéséhez
query1 frissítése;
system.debug('Frissítve: '+query1);
Kimenet:
A „Befejező dátum” előző hónapja április. 3 hónap hozzáadásával most július van.
3. példa:
Használjuk az addYears() metódust, hogy 3 évet adjunk a meglévő „Befejező dátumhoz”.
// Visszaküldi a nevet és a végdátumot a kampányból SOQL használatávalList
system.debug('Aktuális: '+query1);
// Adjon hozzá 3 évet az EndDate-hez az addYears() metódussal
for(i kampány: lekérdezés1){
i.EndDate = i.EndDate.addYears(3);
}
// Használja a DML frissítését az EndDate frissítéséhez
query1 frissítése;
system.debug('Frissítve: '+query1);
Kimenet:
A „Befejezés dátumához” 3 év hozzáadását követően a frissített év 2026.
Következtetés
A dátum formázása a Salesforce Apexben meglehetősen egyszerű. Ennek az oktatóanyagnak a részeként megtanultuk, hogyan alakítsuk át a „Date”-t „String” formátumról „Date”-re az Apex „Date” osztályban elérhető valueOf() metódussal. Ha vissza szeretné alakítani a dátumot karakterláncra, akkor a format() és dátum attribútumokat használjuk, például day(), month() és year(). Végül az útmutatót a Salesforce „Campaign” objektum DML-műveletének megvitatásával fejeztük be a „Befejező dátum” frissítéséhez az addDays(), addMonths() és addYears() metódusokkal, külön példákkal.