<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_back_links(env):
 """ Create back-links in all found needs. But do this only once, as all needs are already collected and this sorting is for all needs and not only for the ones of the current document. :param env: sphinx enviroment :return: None """

    if env.needs_workflow['backlink_creation']:
        return

    needs = env.needs_all_needs
    for key, need in needs.items():
        for link in need["links"]:
            link_main = link.split('.')[0]
            try:
                link_part = link.split('.')[1]
            except IndexError:
                link_part = None

            if link_main in needs:
                if key not in needs[link_main]["links_back"]:
                    needs[link_main]["links_back"].append(key)

                # Handling of links to need_parts inside a need
                if link_part is not None:
                    if link_part in needs[link_main]['parts']:
                        if 'links_back' not in needs[link_main]['parts'][link_part].keys():
                            needs[link_main]['parts'][link_part]['links_back'] = []
                        needs[link_main]['parts'][link_part]['links_back'].append(key)

    env.needs_workflow['backlink_creation'] = True