<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def changeSuffixinASN(asnfile, suffix):
 """ Create a copy of the original asn file and change the name of all members to include the suffix. """

    # Start by creating a new name for the ASN table
    _new_asn = asnfile.replace('_asn.fits','_'+suffix+'_asn.fits')
    if os.path.exists(_new_asn):
        os.remove(_new_asn)
    # copy original ASN table to new table
    shutil.copy(asnfile,_new_asn)

    # Open up the new copy and convert all MEMNAME's to include suffix
    fasn = fits.open(_new_asn, mode='update', memmap=False)
    fasn[0].header['DUPCHECK'] = "COMPLETE"
    newdata = fasn[1].data.tolist()
    for i in range(len(newdata)):
        val = newdata[i][0].decode(encoding='UTF-8').strip()
        if 'prod' not in newdata[i][1].decode(encoding='UTF-8').lower():
            val += '_'+suffix
        newdata[i] = (val,newdata[i][1].strip(),newdata[i][2])

    # Redefine dtype to support longer strings for MEMNAME
    new_dtype = []
    d = fasn[1].data.dtype
    msize = d.descr[0][1][1:]
    new_size = int(msize[1:])+8
    mtype = msize[0]
    new_dtype.append((d.descr[0][0],d.descr[0][1].replace(msize,'{}{}'.format(mtype,new_size))))
    new_dtype.append(d.descr[1])
    new_dtype.append(d.descr[2])

    # Assign newly created, reformatted array to extension
    newasn = np.array(newdata,dtype=new_dtype)
    fasn[1].data = newasn
    fasn.close()

    return _new_asn