Esempio n. 1
0
def CreateAreaFromWells(new_route_name, well_list, Update_User):
    from Model import ModelLayer as m
    from Model import QueryFile as qf
    from Model import BPXDatabase as bpx
    from datetime import datetime
    import pandas as pd

    Success = True
    Messages = []

    try:
        WellQuery = qf.EDWKeyQueryFromWellName(well_list)
        obj = bpx.GetDBEnvironment('ProdEDW', 'OVERRIDE')

        wells, wells_df = obj.Query(WellQuery)
        for idx, well in wells_df.iterrows():
            WellName = well['WellName']
            corpID = well['CorpID']
            AggregateRowObj = m.AreaAggregationRow(new_route_name, WellName,
                                                   corpID, '')
            Row_Success, Message = AggregateRowObj.Write(
                Update_User, datetime.now())

            if not Row_Success:
                Messages.append(Message)

    except Exception as ex:
        Success = False
        Messages.append(
            'Error during the creation of the area from well list. ' + str(ex))

    return Success, Messages
Esempio n. 2
0
def CreateAreaWellsFromRoute(new_route_name, db_route_name, Update_User):
    from Model import ModelLayer as m
    from Model import QueryFile as qf
    from Model import BPXDatabase as bpx
    from datetime import datetime
    import pandas as pd

    Success = True
    Messages = []

    try:

        ODSObj = bpx.GetDBEnvironment('ProdODS', 'OVERRIDE')
        EDWObj = bpx.GetDBEnvironment('ProdEDW', 'OVERRIDE')
        query = qf.RouteQuery([db_route_name])
        results = ODSObj.Query(query)

        for idx, row in results[1].iterrows():
            wellflac_query = qf.EDWKeyQueryFromWellFlac([row['wellflac']])
            corpIDres = EDWObj.Query(wellflac_query)
            if not corpIDres[1].empty:
                corpID = corpIDres[1]['CorpID'].iloc[0]
                AggregateRowObj = m.AreaAggregationRow(new_route_name,
                                                       row['name'], corpID, '')
                Row_Success, Message = AggregateRowObj.Write(
                    Update_User, datetime.now())

                if not Row_Success:
                    Messages.append(Message)
            else:
                Messages.append('Missing well entry in key database EDW: ' +
                                row['name'])

    except Exception as ex:
        Success = False
        Messages.append(
            'Error during Area Aggegation interface from Enbase. ' + str(ex))

    return Success, Messages