Form letter for generating XML file to upload to ePAS for assignment recordation
-
I don't like to retype or copy/paste when I don't have to. Recording assignments requires LOTS of error-prone and mind numbing typing and/or copying and pasting. However, most of the information required by ePAS is already in a Matter Detail record. So, why not have AppColl generate an XML file that ePAS (USPTO Electronic Patent Assignment System) will ingest? Since AppColl now supports TXT files, and an XML file is just a TXT file with a different filename extension, it can be done.
The attached file (actually, a PDF of a TXT file, because the forum does not allow uploading TXT files) does almost everything that I need. Store the TXT file as a Form Letter in AppColl, then generate a document in the Matter Details page, and almost all of the information needed to record the assignments goes into the generated TXT file. Lightly edit the TXT file with a text editor (if you use a word processor, be careful to output a TXT file), and you can then upload the TXT file into ePAS. (ePAS accepts TXT and XML files.) See instructions in the comments section at the beginning of the attached document about what you have to edit in the TXT file. I have lobbied AppColl to add some capabilities, such as per-inventor assignment execution dates, but until these are implemented, you will have to enter the execution dates manually. You have to be fastidious, because ePAS is notoriously finicky, and in some places inconsistent. So, pay attention to the instructions.
The attached document is built to handle up to 20 assignors and one assignee, but you can extend that, if you want.
I provide this file FYI, without support or warranty.
-
@BerndN5890 Cool!
-
@GeorgeJ4336 This is great!
Here is a small Python script to automate the "lightly edit" step:
import xml.etree.ElementTree as ET import glob path="C:\\Users\\WhereeverYourDownloadAppcollFilesInput\\" f = next(glob.iglob(path+"*EPAS_*.txt")) # use a characterizing portion of filename print ("Processing file ",f) tree = ET.parse(f) root = tree.getroot() conveyingparties=root.find("pat-conveying-parties") print("Enter assignment execution date in yyyy-mm-dd format") for conveyingparty in conveyingparties.findall("pat-conveying-party"): if (conveyingparty.find("individual/first-name").text == None): conveyingparties.remove(conveyingparty) else: assignor=conveyingparty.find("individual/first-name").text+" "+conveyingparty.find("individual/last-name").text+": " executeddate=input(assignor) conveyingparty.find("executed-date").text = executeddate tree.write(path+"_EPAS-upload.txt")
-
@GeorgeJ4336 Thank you for sharing