Create the class with below methods
public
class OnhandQty extends RunBaseBatch
{
SysMailer mailer;
boolean check;
SysEmailParameters parameters;
#define.CurrentVersion(1)
#localmacro.CurrentList
//onhandQty
// methodVariable2
#endmacro
}
public
static void main(Args args)
{
OnhandQty onhandQty;
;
onhandQty = new OnhandQty();
onhandQty.run();
}
void
run()
{
this.WriteCSV();
if(check == true)
{
this.EmailCheck();
}
}
// This method is used to bring the data and Save it into CSV file
void
WriteCSV()
{
Commaio file;
container line,line1;
FileIOPermission permission;
InventTable inventTable;
MinimumQty minimumQty;
// #define.filename("C:\\Report\\On-Hand.csv")
#File
;
check = false;
permission = new FileIOPermission(#filename,#io_write);
permission.assert();
file = new Commaio(#filename , #io_write);
file = new Commaio(#filename , 'W');
if( !file
|| file.status() != IO_Status::Ok)
{
throw
error("File Cannot be opened");
}
line1 =
["Item Id","Description","On
Hand","Min-ReOrder Qty"];
file.writeExp(line1);
while
select minimumQty
{
if(minimumQty.MinQty
> minimumQty.Onhand && minimumQty.MinQty !=0)
{
line =
[minimumQty.ItemID,InventTable::find(minimumQty.ItemID).ItemName
,minimumQty.Onhand,minimumQty.MinQty];
file.writeExp(line);
check =
true;
}
}
}
// By using this method we can send this CSV file to users in the List..
void
EmailCheck()
{
//Set
permissionSet2 = new Set(Types::Class);
InteropPermission
permission = new InteropPermission(InteropKind::ComInterop);
;
CodeAccessPermission::revertAssert();
//
permissionSet2.add(new InteropPermission(InteropKind::ClrInterop));
//
permission = new InteropPermission(InteropKind::ComInterop);
//
permissionSet2.add(new FileIOPermission(_attachmentFilename, 'r'));
permission.assert();
mailer =
new SysMailer();
parameters
= SysEmailParameters::find();
if
(parameters.SMTPRelayServerName)
{
mailer.SMTPRelayServer(parameters.SMTPRelayServerName,
parameters.SMTPPortNumber,
parameters.SMTPUserName,
SysEmailParameters::password(),
parameters.NTLM);
}
else
{
mailer.SMTPRelayServer(parameters.SMTPServerIPAddress,
parameters.SMTPPortNumber,
parameters.SMTPUserName,
SysEmailParameters::password(),
parameters.NTLM);
}
mailer.fromAddress('ABC@XYZ.com,');
mailer.tos().appendAddress('xyx@abc.com’);
mailer.tos().appendAddress('abc@abc.com);
mailer.htmlBody('Find
the attachment and update the on hand quantiy. <Br>\n NOTE:This is a
System
Generated
Email. Please do not Reply.');
mailer.subject('Inventory
On Hand Status');
//mailer.attachments().add("C:\\Report\\On-Hand.csv");
CodeAccessPermission::revertAssert();
}
// Save the values
public
container pack()
{
return [#CurrentVersion];
}
// Retrieve those values
public
boolean unpack(container packedClass)
{
Version
version = RunBase::getVersion(packedClass);
switch
(version)
{
case
#CurrentVersion:
[version]
= packedClass;
break;
default:
return
false;
}
return
true;
}
You Know
friends here one more issue is there, in this process we need to assign the
email ids for the users manually, but that is not the correct process for
technical peoples.
Avoid
those process, create one form like parameter form there users can add /remove
the email id. System will automatically take the ids from that form and emails
every day.
After completing above process we need to configure the batch in Batch
server.
Go to ->Administration Module->set Up->Batch Group
Here we need to select the batch server
Over view tab
Batch Server Tab
Administration -> set Up -> Server configuration->
Select the class what we wrote for sending Emails to users , choose the class and save it .
Go to Functions ->change status-> change the status to waiting
Final Step is Go to Recurrences -> Here we can give the timings based on the time give below.
Administration -> set Up -> Server configuration->
Select the class what we wrote for sending Emails to users , choose the class and save it .
Final Step is Go to Recurrences -> Here we can give the timings based on the time give below.
No comments:
Post a Comment