My employee #Insights2022 invite finally arrived, so I am officially registered and going. (I bet you all were worried)…
Looking forward to seeing all of you at Insights!
I was on the edge of my seat waiting.
Is JitterBit presenting their “Epicor to Salesforce” integration? I think they are making corrections to their prepackaged solution based on the 50+ hours of support sessions we had to get it working.
I’ve been extremely busy with work. Beyond Busy. I was hoping to show you the magic of BufferCopy and how it has solved 1000 headaches. Maybe next year. I am coming as a spectator… I could always help flip slides via mouse-click for anyone.
I would like to know about the buffercopy too
Matt,
I am wishing a lot better days ahead for you and the salesforce integration.
I would like to hear more about the process and some takeaways you had.
Will you be at insights?
Hey Utah
I’ll be at insights from May 20th - 27th.
I’ll be at insights from May 20th - 27th.
I’ll be at insights from May 20th - 27th.
[quote=“josecgomez, post:51, topic:87564, full:true”]
AlexanderDelarge:I’ll be at insights from May 20th - 27th .
[/quote]I’ll be at insights from May 20th - 27th.
I’ll be at insights from May 20th - 27th.
Awesome!
[quote=“josecgomez, post:51, topic:87564”]
AlexanderDelarge:I’ll be at insights from May 20th - 27th .
I’ll be at insights from May 20th - 27th.
I’ll be at insights from May 20th - 27th.
I’ll be at insights from May 20th - 27th.
[quote=“hasokeric, post:53, topic:87564, full:true”]
[quote=“josecgomez, post:51, topic:87564”]
AlexanderDelarge:I’ll be at insights from May 20th - 27th .
I’ll be at insights from May 20th - 27th.
[/quote]I’ll be at insights from May 20th - 27th.
I’ll be at insights from May 20th - 27th.
Nice, I’ll be at insights from May 20th - 27th.
Looking forward to meet you
Hi Guys - i will be there from the 21st until the 27th.
Hello all
Not sure if this is the place for this, but I will be at Insights from the 21st to the 26th.
I will be seeing the new top gun movie on the 27th.
I attended all of these panel presenter sessions - seems like a few times someone mentioned there would be something posted on EpiUsers.Help with downloads (e.g. sample code, maybe the Zebra Printer Status dashboard @Chris_Conn showed off ) Has that been posted somewhere on here and I’m failing to search for it?
They usually give us a fairly large room with enough seats for as more people than we usually attract.
I felt like most of the customer-led sessions should have been in larger rooms this year, @Banderson. Anyone else get that sense? They all seemed packed, sweaty, and uncomfortable while a few of the more official Epicor ones I went to had huge, mostly empty rooms.
Don’t they always put us in that one down there? I swear we were in the same one 2 years ago and it’s ALWAYS packed!
I filled out the survey stating the sessions were standing room only, and we need larger rooms next year. Not sure if the app/web is still active, but fill out your surveys if you didn’t!
Sorry, I think my first question got buried in the room size discussion. Is anything being posted to these forums that was discussed as possibly being posted during the breakout sessions?
I did find this post by reading the note @josecgomez had in one of his slides:
Class to Kinetic Upgrade Helper - Kinetic 202X - Epicor User Help Forum (epiusers.help)
Here are the guts of it - I need to sanitize before I share the whole project but these are the most important bits:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Web;
public static class Zebra
{
public static ZebraStatus GetStatus(string name)
{
// Printer IP Address and communication port
string ipAddress = name;
int port = 9100; //the default, did you change it?
// ZPL Command(s)
string ZPLString = "~HS";
/*"^XA" +
"^FO50,50" +
"^A0N50,50" +
"^FDHello, World!^FS" +
"^XZ";*/
try
{
// Open connection
System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient();
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
client.SendTimeout = 3000;
client.ReceiveTimeout = 5000;
var success = client.ConnectAsync(ipAddress, port).Wait(1800); //conn timeout
if (!success)
{
// throw new Exception("Failed to connect.");
var resp2 = new ZebraStatus();
resp2.Name = name;
return resp2;
}
// Write ZPL String to connection
System.IO.StreamWriter writer =
new System.IO.StreamWriter(client.GetStream());
writer.Write(ZPLString);
writer.Flush();
var ns = client.GetStream();
var buflen = client.Available;
var attempts = 0;
while (buflen == 0 && attempts++ < 20)
{
System.Threading.Thread.Sleep(10);
buflen = client.Available;
}
var mybuf = new byte[buflen];
//ns.Read(mybuf, 0, (int)ns.Length);
var cnt = 0;
var abort = false;
while (cnt < buflen && !abort)
{
int val = ns.ReadByte();
if (val == -1)
{
abort = true;
}
mybuf[cnt++] = (byte)val;
}
var time = stopWatch.ElapsedMilliseconds;
stopWatch.Stop();
// Close Connection
ns.Close();
writer.Close();
client.Close();
//client.EndConnect(clientConn);
var resp = System.Text.Encoding.ASCII.GetString(mybuf);
var status = new ZebraStatus();
status.LoadFromString(resp);
status.Name = ipAddress;
status.ResponseTime = time;
//PrinterResponse.Text = status.ToString();
return status;
}
catch (Exception ex)
{
var resp = new ZebraStatus();
resp.Name = name;
//PrinterResponse.Text = resp.ToString();
return resp;
//throw;
// Catch Exception
}
}
}
public class ZebraStatus
{
//030,0,0,1244,000,0,0,0,000,0,0,0
//comm, paperout,pause, labellen, formats, BUFF FULL, Diagnostics, PartialFormat, 3 0's, crpt ram, temp under, temp over
//001,0,0,0,1,2,6,0,00000000,1,000
//Func, unused, head open, ribbon out, thermal mode, print mode, print width, label waiting, labels remaining (8), 1, num of images(3)
//0000,0
//ignore
public string Name;
public string IP;
public bool PaperOut;
public bool Paused;
public bool BufferFull;
public bool Diagnostics;
public bool PartialFormat;
public bool CorruptRam;
public bool OverTemp;
public bool UnderTemp;
public bool HeadOpen;
public bool RibbonOut;
public bool ThermalTransfer;
public int PrintMode;
public bool LabelWaiting;
public bool Connected = false;
public long ResponseTime = 0;
public bool IsOnline = false;
public DateTime LastUpdate = DateTime.Now;
public DateTime? LastResponse = null;
public bool IsQuerying = true;//false;
public bool LoadFromString(string input)
{
var statuslist = input.Split(',');
try
{
PaperOut = statuslist[1] == "1";
Paused = statuslist[2] == "1";
BufferFull = statuslist[5] == "1";
Diagnostics = statuslist[6] == "1";
PartialFormat = statuslist[7] == "1";
CorruptRam = statuslist[8] == "1";
OverTemp = statuslist[9] == "1";
UnderTemp = statuslist[10] == "1";
HeadOpen = statuslist[13] == "1";
RibbonOut = statuslist[14] == "1";
ThermalTransfer = statuslist[15] == "1";
PrintMode = Convert.ToInt32(statuslist[16]);
LabelWaiting = statuslist[17] == "1";
IsOnline = true;
IsQuerying = false;
LastResponse = DateTime.Now;
}
catch(Exception e)
{
Connected = false;
return false;
}
Connected = true;
return true;
}
public override string ToString()
{
string n = Environment.NewLine;
string response = this.Connected ?
$"Name: {this.Name}{n}ResponseTime(ms):{this.ResponseTime}{n}Paused:{this.Paused}{n}PaperOut:{this.PaperOut}{n}BufferFull:{this.BufferFull}{n}HeadOpen:{this.HeadOpen}{n}RibbonOut:{this.RibbonOut}{n}LabelWaiting:{this.LabelWaiting}{n}" :
$"Name: { this.Name}{n}Not Connected!";
return response;
}
}
----- USAGE-----
ZebraStatus status = Zebra.GetStatus(PrinterIPorHostName);
Give me a bit and I’ll share the project (with the disclaimer I am not a webdev)